Autor Tópico: Ajuda com select complicado (RESOLVIDO)  (Lida 3018 vezes)

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Ajuda com select complicado
« Responder #15 Online: Junho 04, 2012, 01:41:57 pm »
Melhor forma é criando uma view mesmo, tive que importar sua base para testar.
Crie a View no banco:
Código: [Selecionar]
CREATE VIEW view_vendas AS 
 
SELECT PV.produto as produto ,  sum(PV.qtde)   as vendido , sum(0) as devolvido , C.Numero as Campanha
FROM pedidos P
INNER JOIN pedidos_itens_atuais PV ON PV.pedido = P.pedido
INNER JOIN campanhas C on P.data_pedido >= C.data_inicial and P.data_pedido <= C.data_final
group by campanha, produto
UNION all
SELECT PD.produto as produto , sum(0) as vendido , sum(PD.qtde)   as devolvido, C.Numero  as Campanha
FROM pedidos P
INNER JOIN pedidos_itens_devolvidos PD ON PD.PEDIDO = P.pedido
INNER JOIN campanhas C on P.data_pedido >= C.data_inicial and P.data_pedido <= C.data_final
group by campanha, produto;

Select da consulta:

Código: [Selecionar]
SELECT produto, sum(Vendido), sum(devolvido), campanha
FROM view_vendas
where campanha=4
group by campanha, produto;

Haroldo

  • Expert
  • *****
  • Mensagens: 6293
  • Conhecimento diminui limitações.△TFA△
    • Infinitus Web Gestão Empresarial/Gestão ITIL/Consultoria Scriptcase
Re:Ajuda com select complicado
« Responder #16 Online: Junho 04, 2012, 01:46:15 pm »
Outra forma é não colocar a campanha no select principal, no filtro criar uma campo manualmente para selecionar a campanha, na onscriptinit fazer um sc_lookup na campanha, pegar as datas e adicionar dinamicamente no where as datas inicial e final na critica de pedidos.


rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re:Ajuda com select complicado
« Responder #17 Online: Junho 04, 2012, 01:52:24 pm »
A view ficou perfeita Haroldo, tópico solucionado!

Muitíssimo obrigado.
Rodrigo
Rodrigo Araújo