Fórum Consulta entre tres tabelas #206877
16/01/2004
0
o total vendido de cada produto em um determinado período de tempo: __/__/____ a __/__/____.
uso as seguintes tabelas:
tbpedidoitem1, tbpedidoitem2 e tbpedidoitem3 todas com a mesma estrutura:
...
data
n. pedido
codigo do produto
quantidade
...
uso banco mysql com ClientDataSet.
agradeço a ajuda de todos.
:wink:
Aflsilva
Curtir tópico
+ 0Posts
16/01/2004
Paulo_amorim
Aflsilva, tente especificar melhor a estrutura.
Qual a diferença entre as 3 tabelas?
Como elas estão relacionadas?
Assim quem sabe seja mais facil explicar
Gostei + 0
16/01/2004
Aroldo Zanela
Coloque o código abaixo na propriedade SQL:
SELECT SUM(quantidade) AS total FROM tbPedidoItem1 WHERE data BETWEEN :inicio AND :termino GROUP BY codigo do produto UNION ALL SELECT SUM(quantidade) AS total FROM tbPedidoItem2 WHERE data BETWEEN :inicio AND :termino GROUP BY codigo do produto UNION ALL SELECT SUM(quantidade) AS total FROM tbPedidoItem3 WHERE data BETWEEN :inicio AND :termino GROUP BY codigo do produto ORDER BY codigo do produto
Agora basta passar os parâmetros ao objeto de acesso que está utilizando para obter os resultados.
Gostei + 0
16/01/2004
Aflsilva
Gostei + 0
16/01/2004
Aflsilva
with fdm.query1 do
begin
Close;
commandtext :=
´select (codigo) as Código, (nome)as Produto, sum(qtd) as Vendido from tbpedidoitem1´ +
´where data >= ´´ + st2 + ´´ and data <= ´´ + st4 + ´´ and operacao =´P´ group by codigo, nome order by vendido desc´
UNION ALL
´select (codigo) as Código, (nome)as Produto, sum(qtd) as Vendido from tbpedidoitem2´ +
´where data >= ´´ + st2 + ´´ and data <= ´´ + st4 + ´´ and operacao =´P´ group by codigo, nome order by vendido desc´;
UNION ALL
´select (codigo) as Código, (nome)as Produto, sum(qtd) as Vendido from tbpedidoitem2´ +
´where data >= ´´ + st2 + ´´ and data <= ´´ + st4 + ´´ and operacao =´P´ group by codigo, nome order by vendido desc´;
end;
Espero que entendam e me ajudem.
Obridado.
Gostei + 0
16/01/2004
Aroldo Zanela
Order by deve ficar apenas no último select. No entanto, após o melhor detalhamento de sua questão, vejo que esta não é a solução adequada, pois haverá repetições de totais por código de produto. Acho que será necessário consolidar as tabelas numa única (temp table) para obter o resultado correto.
Gostei + 0
16/01/2004
Aflsilva
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)