Ajuda em SQL
Colegas, Tenho esse SQL:
Select V.PPAgo,V.CODVENDA,V.IDUSER,I.CODPROD,I.QTDE,I.PRECOUNIT,P.CM_CODFOR,
P.CM_DESCRI,P.CM_PACOTE,CM_UNIDAD,P.CM_PCUSTO,P.CM_FOTO,C.CL_CODCLI,C.CL_NOMCLI,C.CL_CIDACL
From Venda V,ItemVenda I,ADESTOKE P,ADCLIENT C
where V.Codcli = C.CL_CODCLI
and I.CodVenda = V.CodVenda
and I.Codprod = P.CM_CODMAT
AND C.CL_CODCLI = 4268
and V.IDUSER = 4
GROUP BY V.PPAgo,V.CODVENDA,V.IDUSER,I.CODPROD,I.QTDE,I.PRECOUNIT,P.CM_CODFOR,
P.CM_DESCRI,P.CM_PACOTE,CM_UNIDAD,P.CM_PCUSTO,P.CM_FOTO,C.CL_CODCLI,C.CL_NOMCLI,C.CL_CIDACL
Ele funciona, mas repete o mesmo iten de venda, gostaria que ele me listasse todos os itens vendido para um cliente, listando todos os produtos vendidos por codigo e mostrando na tela esses itens escolhendo o que foi vendido com o preço mais caro.
Ele esta listando assim:
VENDA PROD PRECO
2000 20 10,00
2000 20 12,00
2000 10 15,00
gostaria que ficasse assim:
VENDA PROD PRECO
2000 50 15,00
Somaria a quantidade de produtos vendido e me listava o que foi vendido mais caro.
Grato:
Jose Luiz
Select V.PPAgo,V.CODVENDA,V.IDUSER,I.CODPROD,I.QTDE,I.PRECOUNIT,P.CM_CODFOR,
P.CM_DESCRI,P.CM_PACOTE,CM_UNIDAD,P.CM_PCUSTO,P.CM_FOTO,C.CL_CODCLI,C.CL_NOMCLI,C.CL_CIDACL
From Venda V,ItemVenda I,ADESTOKE P,ADCLIENT C
where V.Codcli = C.CL_CODCLI
and I.CodVenda = V.CodVenda
and I.Codprod = P.CM_CODMAT
AND C.CL_CODCLI = 4268
and V.IDUSER = 4
GROUP BY V.PPAgo,V.CODVENDA,V.IDUSER,I.CODPROD,I.QTDE,I.PRECOUNIT,P.CM_CODFOR,
P.CM_DESCRI,P.CM_PACOTE,CM_UNIDAD,P.CM_PCUSTO,P.CM_FOTO,C.CL_CODCLI,C.CL_NOMCLI,C.CL_CIDACL
Ele funciona, mas repete o mesmo iten de venda, gostaria que ele me listasse todos os itens vendido para um cliente, listando todos os produtos vendidos por codigo e mostrando na tela esses itens escolhendo o que foi vendido com o preço mais caro.
Ele esta listando assim:
VENDA PROD PRECO
2000 20 10,00
2000 20 12,00
2000 10 15,00
gostaria que ficasse assim:
VENDA PROD PRECO
2000 50 15,00
Somaria a quantidade de produtos vendido e me listava o que foi vendido mais caro.
Grato:
Jose Luiz
Jose Luiz
Curtidas 0
Respostas
Maikel
16/07/2009
José, bom dia
Tente usar os 2 seguintes comando integrados a sua instrução SQL:
SUM - Soma as quantidades de produtos
MAX - Seleciona o maior preço
Então, sua SQL ficaria assim:
Quando você usa SUM, MAX os campos aos quais estes são aplicados não constam mais no GROUP BY
Faz o teste ai e volta a postar o resultado
Att
Tente usar os 2 seguintes comando integrados a sua instrução SQL:
SUM - Soma as quantidades de produtos
MAX - Seleciona o maior preço
Então, sua SQL ficaria assim:
Select V.PPAgo, V.CODVENDA, V.IDUSER, I.CODPROD, SUM(I.QTDE), MAX(I.PRECOUNIT), P.CM_CODFOR, P.CM_DESCRI, P.CM_PACOTE, CM_UNIDAD, P.CM_PCUSTO, P.CM_FOTO, C.CL_CODCLI, C.CL_NOMCLI, C.CL_CIDACL From Venda V,ItemVenda I,ADESTOKE P,ADCLIENT C where V.Codcli = C.CL_CODCLI and I.CodVenda = V.CodVenda and I.Codprod = P.CM_CODMAT AND C.CL_CODCLI = 4268 and V.IDUSER = 4 GROUP BY V.PPAgo, V.CODVENDA, V.IDUSER, I.CODPROD, P.CM_CODFOR, P.CM_DESCRI, P.CM_PACOTE, CM_UNIDAD, P.CM_PCUSTO, P.CM_FOTO, C.CL_CODCLI, C.CL_NOMCLI, C.CL_CIDACL
Quando você usa SUM, MAX os campos aos quais estes são aplicados não constam mais no GROUP BY
Faz o teste ai e volta a postar o resultado
Att
GOSTEI 0
Jose Luiz
16/07/2009
Amigo, muito obrigado pela força. Funcionou 100¬.
Valeu
Jose Luiz
Valeu
Jose Luiz
GOSTEI 0