Fórum Como montar esse Select? #59220
04/12/2007
0
Tenho 2 tabelas.
Tabela MOVIMENTOS
DATA - PRODUTO - MOVIMENTO - QUANTIDADE - VALOR
MOVIMENTO pode ser: E para entradas e S para saidas.
Tabela PRODUTOS
PRODUTO - NOME
Como posso gerar uma instrução sql que me retorne:
1 - Código do Produto
2 - Nome do Produto
3 - Quantidade de Entradas no periodo
4 - Quantidade de Saidas no periodo
5 - Total de entradas no periodo
6 - Total de saidas no periodo
Tipo assim
PRODUTO - NOME - QUANTENT - TOTALENT - QUANTSAI - TOTALSAI
----------------------------------------------------------------------------------------------------
000001 - Disquete - 100 - 120,35 - 2000 - 300,00
000002 - Papel - 200 - 200,35 - 1000 - 80,00
000003 - Lapis - 50 - 60,35 - 1000 - 20,00
Alguem poderia me ajudar???
Tabela MOVIMENTOS
DATA - PRODUTO - MOVIMENTO - QUANTIDADE - VALOR
MOVIMENTO pode ser: E para entradas e S para saidas.
Tabela PRODUTOS
PRODUTO - NOME
Como posso gerar uma instrução sql que me retorne:
1 - Código do Produto
2 - Nome do Produto
3 - Quantidade de Entradas no periodo
4 - Quantidade de Saidas no periodo
5 - Total de entradas no periodo
6 - Total de saidas no periodo
Tipo assim
PRODUTO - NOME - QUANTENT - TOTALENT - QUANTSAI - TOTALSAI
----------------------------------------------------------------------------------------------------
000001 - Disquete - 100 - 120,35 - 2000 - 300,00
000002 - Papel - 200 - 200,35 - 1000 - 80,00
000003 - Lapis - 50 - 60,35 - 1000 - 20,00
Alguem poderia me ajudar???
Fsneto
Curtir tópico
+ 0
Responder
Posts
04/12/2007
Renan.cb
cara nao tenho como testar aqui onde estou, mas deve ser mais ou menos assim:
SELECT m.data, m.movimento, m.quantidade,
p.produto, p.nome, SUM(m.valor) AS total
FROM Movimentos AS m
INNER JOIN Produtos AS p
ON (p.produto=m.produto)
WHERE m.movimenyo = ´S´
Não sei se está correto, mas de repente pode ajudá-lo.
T+!
SELECT m.data, m.movimento, m.quantidade,
p.produto, p.nome, SUM(m.valor) AS total
FROM Movimentos AS m
INNER JOIN Produtos AS p
ON (p.produto=m.produto)
WHERE m.movimenyo = ´S´
Não sei se está correto, mas de repente pode ajudá-lo.
T+!
Responder
Gostei + 0
04/12/2007
Gandalf.nho
Se seu banco for FB 1.5 ou superior, tente isso:
SELECT PRODUTOS.PRODUTO, PRODUTOS.NOME, SUM(QUANTIDADE*(CASE WHEN MOVIMENTO = ´E´ THEN 1 ELSE 0 END)) AS QUANTENT, SUM(QUANTIDADE*(CASE WHEN MOVIMENTO = ´S´ THEN 1 ELSE 0 END)) AS QUANTSAI, SUM(VALOR*(CASE WHEN MOVIMENTO = ´E´ THEN 1 ELSE 0 END)) AS TOTALENT, SUM(VALOR*(CASE WHEN MOVIMENTO = ´S´ THEN 1 ELSE 0 END)) AS TOTALSAI FROM PRODUTOS INNER JOIN MOVIMENTOS ON PRODUTOS.PRODUTO = MOVIMENTOS.PRODUTO WHERE DATA BETWEEN :DATAINICIO AND :DATATERMINO
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)