Ajuda na montagem de um Select
Tenho essas tabelas com os determinados campos:
clientes (id, nome)
Venda (cliente, valor)
Consignacao (cliente, valor)
O campo cliente das tabelas venda e consignação são chaves estrangeiras da tabela clientes.
Preciso montar um select que me retorne em uma ´unica´ linha o valor de todas as vendas e de todas as consignações de cada cliente. Por exemplo: Cliente José tem dois registros de venda de R$ 25,00 e tres registros de consignação de 10,00. Com este select eu preciso que me retorne esta linha:
Jose 50,00 30,00
eu até consegui fazer, mas me retorna duas linhas. Alguem sabe como proceder para que fique igual ao meu exemplo?
clientes (id, nome)
Venda (cliente, valor)
Consignacao (cliente, valor)
O campo cliente das tabelas venda e consignação são chaves estrangeiras da tabela clientes.
Preciso montar um select que me retorne em uma ´unica´ linha o valor de todas as vendas e de todas as consignações de cada cliente. Por exemplo: Cliente José tem dois registros de venda de R$ 25,00 e tres registros de consignação de 10,00. Com este select eu preciso que me retorne esta linha:
Jose 50,00 30,00
eu até consegui fazer, mas me retorna duas linhas. Alguem sabe como proceder para que fique igual ao meu exemplo?
Roberto Rossi
Curtidas 0
Respostas
Jeimyson
07/11/2007
Brother..
Acho que isso resolverá...
Flww´ssss 8)
Acho que isso resolverá...
SELECT CLIENTES.ID, CLIENTES.NOME SUM(VENDA.VALOR) AS VALOR_VENDAS, SUM(CONSIGNACAO.VALOR) AS VALOR_CONSIGNACAO FROM CLIENTES JOIN VENDA ON CLIENTES.ID = VENDA.CLIENTE JOIN CONSIGNACAO ON CLIENTES.ID = CONSIGNACAO.CLIENTE GROUP BY CLIENTES.ID, CLIENTES.NOME
Flww´ssss 8)
GOSTEI 0
Jáder Medeiros
07/11/2007
Select a.Nome, b.Vendas, c.Consignado From Clientes a left join (Select Clientes.ID, Sum(Valor) Vendas From Venda Group By Clientes.ID) b on a.ID = b.ID left join (Select Clientes.ID, Sum(Valor) Consignado From Consignacao Group By Clientes.ID) c on a.ID = c.ID
GOSTEI 0
Jáder Medeiros
07/11/2007
Select a.Nome, b.Vendas, c.Consignado
From Clientes a left join (Select ID, Sum(Valor) Vendas From Venda Group By ID) b on a.ID = b.ID left join (Select ID, Sum(Valor) Consignado From Consignacao Group By ID) c on a.ID = c.ID
[b:e2af64df88]Testado e comprovado.[/b:e2af64df88][/b]
GOSTEI 0
Roberto Rossi
07/11/2007
Deu certo a instrução que os colegas me passaram, só que tem um problema: tive que mudar o esquema das tabelas e aí fiquei perdido de novo. Agora o esquema é o seguinte:
Tenho essas tabelas com os determinados campos:
clientes (id, nome)
Venda (id, cliente)
ItensVenda (id_venda, valor)
Consignacao (id, cliente)
itens_consignação (id_consignacao, valor)
Preciso que saia o resultado igual ao indicado na pergunta principal. Será que vocês podem me ajudar de novo?
Tenho essas tabelas com os determinados campos:
clientes (id, nome)
Venda (id, cliente)
ItensVenda (id_venda, valor)
Consignacao (id, cliente)
itens_consignação (id_consignacao, valor)
Preciso que saia o resultado igual ao indicado na pergunta principal. Será que vocês podem me ajudar de novo?
GOSTEI 0