SUM SQL

BASSO 25/09/2014 10:44:57
#441497
Ola pessoal tenho o seguinte código:
[Ô]Select C.RAZAO_NOME, C.FONE, C.CELULAR, D.ID_PRODUTO, P.DESCRICAO, D.QTDE, [Ô] _
& [Ô]D.VLR_UNITARIO,D.NUM_ORC_GERADO,D.DATA_ORC_GERADO, 0.DATA_ORCAMENTO,[Ô] _
& [Ô]O.DATA_ORCAMENTO, P.UNIDADE, D.QTDE * D.VLR_UNITARIO AS TOTALPROD, O.ID [Ô] _
& [Ô]From CLIENTES AS C inner Join ORC_GERADO_CAB AS O on C.ID=O.ID_CLIENTE [Ô] _
& [Ô]inner Join ORC_GERADO_DET AS D on O.ID=D.ID_ORC_GERADO [Ô] _
& [Ô]inner join PRODUTOS AS P on D.ID_PRODUTO=P.ID Where O.ID = [Ô] & txtCodVenda.Text
Preciso somar o alias TOTALPROD .
WILSONJOSE 25/09/2014 11:04:49
#441498
sum(D.QTDE * D.VLR_UNITARIO) AS TOTALPROD, tavez precise de um group by

abaixo segue um site legal para funcções sql

http://www.w3schools.com/sql/sql_func_round.asp

abraço
BASSO 26/09/2014 13:50:19
#441528
Realmente precisa de um group by mas alguém poderia me ajudar.
LENDAURBANA 26/09/2014 15:27:27
#441533
Fica algo assim, só não inclui o TOTALPROD no group by

Estude isso : http://msdn.microsoft.com/pt-br/library/ms177673.aspx

[Ô]Select C.RAZAO_NOME, C.FONE, C.CELULAR, D.ID_PRODUTO, P.DESCRICAO, D.QTDE, [Ô] _
& [Ô]D.VLR_UNITARIO,D.NUM_ORC_GERADO,D.DATA_ORC_GERADO, 0.DATA_ORCAMENTO,[Ô] _
& [Ô]O.DATA_ORCAMENTO, P.UNIDADE, SUM(D.QTDE * D.VLR_UNITARIO) AS TOTALPROD, O.ID [Ô] _
& [Ô]From CLIENTES AS C inner Join ORC_GERADO_CAB AS O on C.ID=O.ID_CLIENTE [Ô] _
& [Ô]inner Join ORC_GERADO_DET AS D on O.ID=D.ID_ORC_GERADO [Ô] _
& [Ô]inner join PRODUTOS AS P on D.ID_PRODUTO=P.ID Where O.ID = [Ô] & txtCodVenda.Text
& [Ô] GROUP BY [Ô] _

& [Ô]C.RAZAO_NOME, C.FONE, C.CELULAR, D.ID_PRODUTO, P.DESCRICAO, D.QTDE, [Ô] _
& [Ô]D.VLR_UNITARIO,D.NUM_ORC_GERADO,D.DATA_ORC_GERADO, 0.DATA_ORCAMENTO,[Ô] _
& [Ô]O.DATA_ORCAMENTO, P.UNIDADE, O.ID [Ô]

BASSO 29/09/2014 13:32:49
#441593
Esse código até deu certo mas na hora de gerar o total ele pega apenas o valor da 1linhaEX:
Data NºOrç. Descrição Qtde Vlr Unit. Vlr Total
---------------------------------------------------------------------------------------------------------------------------------------
29/09/2014 53 SERVIÇO DE TORNO 4 R$ 50,00 R$ 200,00 (alias TOTALPROD)
12/09/2014 47 BARRA FERRO 3/8 2 R$ 50,00 R$ 100,00 ( [Ô] [Ô])
09/09/2014 44 BARRA FERRO 3/8 5 R$ 50,00 R$ 250,00 ([Ô] [Ô])
--------------------------------------------------------------------------------------------------------------------------------------
TOTAL R$ 200,00 (alias TOTAL)
QUEM PUDER ME AJUDAR NO CODIGO:

[Ô]Select C.RAZAO_NOME, C.FONE, C.CELULAR, D.ID_PRODUTO, P.DESCRICAO, D.QTDE, [Ô] _
& [Ô]D.VLR_UNITARIO,D.NUM_ORC_GERADO,D.DATA_ORC_GERADO, 0.DATA_ORCAMENTO,[Ô] _
& [Ô]O.DATA_ORCAMENTO, P.UNIDADE, D.QTDE * D.VLR_UNITARIO AS TOTALPROD, O.ID ,SUM(D.QTDE * D.VLR_UNITARIO) AS TOTAL [Ô] _
& [Ô]From CLIENTES AS C inner Join ORC_GERADO_CAB AS O on C.ID=O.ID_CLIENTE [Ô] _
& [Ô]inner Join ORC_GERADO_DET AS D on O.ID=D.ID_ORC_GERADO [Ô] _
& [Ô]inner join PRODUTOS AS P on D.ID_PRODUTO=P.ID Where O.ID = [Ô] & txtCodVenda.Text _
& [Ô] GROUP BY [Ô] _
& [Ô] D.ID_PRODUTO, P.DESCRICAO, D.QTDE, [Ô] _
& [Ô]D.VLR_UNITARIO,D.NUM_ORC_GERADO,D.DATA_ORC_GERADO [Ô]

NILSONTRES 29/09/2014 14:28:48
#441594
Seguinte, o Sum pode falhar caso algum outro dado não corresponda na chamada.
Quanto mais campos vc agrega, maior a chance de não somar de acordo com o que vc precisa.

BASSO 29/09/2014 14:38:26
#441596
E quando coloco para agrupar somente o O.ID ele soma o total de todas as descrições mas aparece somente a primeira descrição no relatório
LEANDROSANTOS 29/09/2014 14:45:34
#441597
Resposta escolhida
Tenta assim:
[Ô]Select C.RAZAO_NOME, C.FONE, C.CELULAR, D.ID_PRODUTO, P.DESCRICAO, D.QTDE, [Ô] _
& [Ô]D.VLR_UNITARIO,D.NUM_ORC_GERADO,D.DATA_ORC_GERADO, 0.DATA_ORCAMENTO,[Ô] _
& [Ô]O.DATA_ORCAMENTO, P.UNIDADE, (D.QTDE * D.VLR_UNITARIO) AS TOTALPROD, O.ID, (SELECT SUM(D.QTDE * D.VLR_UNITARIO) FROM ORC_GERADO_DET AS D WHERE D.ID_ORC = [Ô] & txtCodVenda.Text & [Ô]) AS TOTAL [Ô] _
& [Ô]From CLIENTES AS C inner Join ORC_GERADO_CAB AS O on C.ID=O.ID_CLIENTE [Ô] _
& [Ô]inner Join ORC_GERADO_DET AS D on O.ID=D.ID_ORC_GERADO [Ô] _
& [Ô]inner join PRODUTOS AS P on D.ID_PRODUTO=P.ID Where O.ID = [Ô] & txtCodVenda.Text

Dessa forma você não vai precisar do GROUP BY
BASSO 02/10/2014 09:41:32
#441650
Valeu LEANDROSANTOS deu certinho depois de muito tempo de quebrar a cabeça . OBRIGADO A TODOS
Tópico encerrado , respostas não são mais permitidas