Fórum Select union compras e vendas detalhe #60230

15/10/2008

0

quero fazer um soma das quantidades de produtos comprados e vendidos para um relatório com duas colunas: entradas e saídas.
Entre outros campos, as tabelas CompraDetalhe e VendaDetalhe têm os campos Produto e Quantidade.
Como faço essa consulta para que liste na mesma linha as entradas e as saídas?

Tentei assim:
´
SELECT COMPRADETALHE.PRODUTO, SUM(COMPRADETALHE.QUANTIDADE) AS QTDE_TOTAL_COMPRADA FROM COMPRADETALHE
GROUP BY 1
UNION ALL
SELECT VENDADETALHE.PRODUTO, SUM(VENDADETALHE.QUANTIDADE) AS QTDE_TOTAL_VENDIDA FROM VENDADETALHE
GROUP BY 1
´
Mas isso não funciona, pois o QTDE_TOTAL_VENDIDA não aparece resultado.

Alguém pode me ajudar?
Obrigado


Armindo

Armindo

Responder

Posts

16/10/2008

Emerson Nascimento

tente assim:
SELECT
  COMPRADETALHE.PRODUTO,
  SUM(COMPRADETALHE.QUANTIDADE) AS QTDE_TOTAL_COMPRADA,
  cast(0 as float) QTDE_TOTAL_VENDIDA
FROM
  COMPRADETALHE
GROUP BY
  1

UNION ALL

SELECT
  VENDADETALHE.PRODUTO,
  cast(0 as float) QTDE_TOTAL_COMPRADA,
  SUM(VENDADETALHE.QUANTIDADE) AS QTDE_TOTAL_VENDIDA
FROM
  VENDADETALHE
GROUP BY
  1

onde está [i:a68b4a1d87]cast(0 as float)[/i:a68b4a1d87], troque o float pelo tipo do campo correspondente.


Responder

Gostei + 0

16/10/2008

Emerson Nascimento

como alternativa, você pode usar subselects, assim:
SELECT
  PRODUTO.PRODUTO,
  (SELECT SUM(COMPRADETALHE.QUANTIDADE)
   FROM COMPRADETALHE
   WHERE COMPRADETALHE.PRODUTO = PRODUTO.PRODUTO) AS QTDE_TOTAL_COMPRADA,
  (SELECT SUM(VENDADETALHE.QUANTIDADE)
   FROM VENDADETALHE
   WHERE VENDADETALHE.PRODUTO = PRODUTO.PRODUTO) AS QTDE_TOTAL_VENDIDA
FROM
  PRODUTO



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar