Ir para conteúdo
Fórum Script Brasil

GilbertoMiranda

Membros
  • Total de itens

    2
  • Registro em

  • Última visita

Tudo que GilbertoMiranda postou

  1. Fulvio, boa tarde. Agradeço muito a resposta. Poderia me dar um pequeno exemplo de como seriam essas temporárias ? Eu fiz varios subselects porque se utilizasse o inner join muitos registros não viriam na consulta. Obrigado mais uma vez. Att, Gilberto Miranda
  2. Olá pessoal. Sou novo aqui no forum e no mundo do desenvolvimento. Tenho um sistema na empresa onde trabalho que, devido às necessidades do usuário (que por sinal é o dono da empresa), está utilizando uma query (feita por mim) muito grande e que acabou ficando lenta demais. Ela demora cerca de 10 minutos para ser executada. Vou postá-la abaixo e gostaria de que alguém me desse uma luz para torná-la mais eficiente. Saliento que ela está sendo usada por um objeco ADODC do VB. sql = "select p.cod_produto, p.cod_produto * 10 + rx.dbo.calcdigitomod11(p.cod_produto) as CodProduto, p.descricao, p.preço, (e.estoque - e.retencao) as Estoque, " _ & "(select unidades from rx.dbo.hist_per_produto where ano = " & Ano & " and periodo = " & Mes - 3 & " and cod_produto = p.cod_produto) as Media3, " _ & "(select unidades from rx.dbo.hist_per_produto where ano = " & Ano & " and periodo = " & Mes - 2 & " and cod_produto = p.cod_produto) as Media2, " _ & "(select unidades from rx.dbo.hist_per_produto where ano = " & Ano & " and periodo = " & Mes - 1 & " and cod_produto = p.cod_produto) as Media1, " _ & "(select unidades from rx.dbo.hist_per_produto where ano = " & Ano & " and periodo = " & Mes & " and cod_produto = p.cod_produto) as Atual, " _ & "round((select media_90 from rx.dbo.produto_estatistica where cod_produto = p.cod_produto),2) as Media90, " _ & "round((Select top 1 valor_unitario from rx.dbo.titulo_item as ti inner join rx.dbo.titulo as t on ti.cod_titulo = t.cod_titulo where ti.cod_produto = p.cod_produto and t.operacao_pedido = 7 order by t.emissao desc),2) as Custo, " _ & "(Select top 1 quantidade from rx.dbo.titulo_item as ti inner join rx.dbo.titulo as t on ti.cod_titulo = t.cod_titulo where ti.cod_produto = p.cod_produto and t.operacao_pedido = 7 order by t.emissao desc) as Quantidade, " _ & "(select sum (pci.qtd_pedida - pci.recebido) from rx.dbo.ped_compra_item as pci inner join rx.dbo.ped_compra as pc on pci.cod_pedido = pc.cod_pedido where pci.cod_produto = p.cod_produto and pc.cod_situacao not in(50,60) and pc.digitando = 0 having sum (pci.qtd_pedida - pci.recebido) >= 0) as Pendente, " _ & "(select top 1 validade from rx.dbo.lote as l inner join rx.dbo.lote_estoque as le on l.id_lote = le.id_lote where id_lote_classificacao = 1 and estoque > 0 and l.cod_produto = p.cod_produto order by validade) as Validade, " _ & "(select preço from vccustom.dbo.promocao_mensal where codproduto = p.cod_produto and mes = " & Mes & " and ano = " & Ano & ") as Promo, " _ & "p.unidade, p.emb_compra, en.fantasia " _ & "from rx.dbo.produto as p inner join rx.dbo.produto_estoque as e on p.cod_produto = e.cod_produto " _ & "inner join rx.dbo.entidade as en on p.cod_entidade = en.cod_entidade " _ & "Where p.situacao = 0 " _ & "order by p.descricao " Agradeço desde já a atenção. Att, Gilberto.
×
×
  • Criar Novo...