Gabriel Cabral Postado Maio 7, 2010 Denunciar Share Postado Maio 7, 2010 (editado) Oi gente.Desculpem, mas não soube me expressar muito bem no título do tópico.Estou fazendo um relatório que lista os produtos vendidos, buscado na tabela de vendas.Mas não é para listar os produtos reptidas vezes.Por exemplo: Pão Francês foi vendido várias vezes em um dia, então terá vários registros em que o campo VENDES é Pão Francês.Eu preciso imprimir tal produto uma vez só, em apenas uma linha... mas preciso também, junto com ele, a somatória do valor total dos pães vendidos.Supondo que na tabela tenha:COD VENDA COD PRODUTO DESCRIÇÃO VALOR TOTAL 00001 00001 Pão Francês 2,00 00002 00001 Pão Francês 3,50 00003 00001 Pão Francês 0,40 Preciso que no relatório fique: COD PRODUTO DESCRIÇÃO VALOR TOTAL 00001 Pão Francês 5,90Já tentei de tudo... group by, select distinct [mas esse não vai funcionar, pois os campos não tem valores iguais em todos os registros]O que vocês sugerem que eu faça?Muito obrigado Editado Maio 7, 2010 por Gabriel Cabral Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Maio 7, 2010 Denunciar Share Postado Maio 7, 2010 isso??Select COD_PRODUTO, DESCRICAO, Sum(VALOR_TOTAL) As TOTAL From Tabela Group By COD_PRODUTO, DESCRICAO Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Maio 10, 2010 Autor Denunciar Share Postado Maio 10, 2010 O problema é que eu também preciso selecionar a data, a quantidade e outros campos.E dessa forma eu preciso colocar também esses campos no Group By, mas aí não ficaria do jeito correto.E quando tem mais de um tipo de produto.. pão e leite, por exemplo... como vou calcular o total do pão e o total do leite, separadamente? porque do jeito que está, ele só soma tudo, sem distinção.Não consigo achar um caminho pra fazer isso. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Maio 10, 2010 Denunciar Share Postado Maio 10, 2010 O problema é que eu também preciso selecionar a data, a quantidade e outros campos.E dessa forma eu preciso colocar também esses campos no Group By, mas aí não ficaria do jeito correto.e o q seria o jeito correto?? qual o problema q vai acontecer se você incluir no group by??porque do jeito que está, ele só soma tudo, sem distinção.não soma não. como você ve se é pao ou leite?? não é pelo codigo ou descricao??então se você usar aquele codigo q passei, ele vai somar separado sim, ue. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Maio 10, 2010 Autor Denunciar Share Postado Maio 10, 2010 Minha consulta está dessa forma, mas ainda não está dando certo.procedure TfrmRelProVen.btnGerarRelClick(Sender: TObject); var codForn, codPro, descPro: string; begin with dmRel.QueryRelProVen do begin Close; SQL.Clear; SQL.Add('SELECT VENCOD, VENDES, VENQTD , SUM(VENTOT) AS TOTAL, SUM(VENCUS) AS CUSTO FROM ESTAVEN.dbf'); SQL.Add('WHERE VENFOR = :pForn AND'); SQL.Add('VENCAN IS NULL'); SQL.Add('GROUP BY VENCOD, VENDES, VENQTD'); ParamByName('pForn').AsString := txtRelProVen_CodForn.Text; Open; if not (IsEmpty) then begin txtVentot.Text := dmRel.QueryRelProVen.FieldByName('TOTAL').Value; txtVencus.Text := dmRel.QueryRelProVen.FieldByName('CUSTO').Value; end; end; dmRel.RvPrjProVen.SetParam('Ventot', txtVentot.Text); dmRel.RvPrjProVen.SetParam('Vencus', txtVencus.Text); dmRel.RvPrjProVen.ExecuteReport('rptProVen'); end;Essa consulta pegaria tres itens:PãoMaçãÁguaMas está pegando todos os pães, todas as maçãs e todas as águas da tabela vendas, e seus respectivos valores e quantidades e tudo mais.Tem algo errado aí. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kuroi Postado Maio 10, 2010 Denunciar Share Postado Maio 10, 2010 gabriel, mas se você tem a maca, e em um registro ela aparece com a quantidade 5. em outro aparece com a quantidade 7. é logico q no group by vai aparecer um registro pra cada quantidade. o group by vai agrupar quando os registros forem semelhantes. se forem diferentes, ele não pode escolher um ou outro. ou você soma a quantidade tb, ou você da um jeito de especificar qual quantidade você quer q apareca, ou você mostra todas as q existirem.de qualquer forma, ainda não entendi se o problema é realmente esse. acho q o melhor seria você mostrar umas linhas de exemplo de como esta saindo e um exemplo de como você gostaria q saisse. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Maio 10, 2010 Autor Denunciar Share Postado Maio 10, 2010 Então.. por isso disse que talvez o Group By não desse certo... por que ele pega registros iguais...Retirei o VENQTD do Select, pois ele não será exibido no relatório.Como agora o Group By ficou apenas com o Código e Descrição do produto, o relatório está saindo assim:COD PRODUTO DESCRIÇÃO VALOR TOTAL 0000000000077 Maçã 4,00 7892840812416 Pão 4,00 Como tem dois registros da maçã, um com total 2,50 e outro com 1,50.. o valor total está certo. Mas o pão, que tem dois registros também, um com total 5 e outro com 2,50... deveria ter valor total 7,50 Então o relatório deveria sair assim: COD PRODUTO DESCRIÇÃO VALOR TOTAL 0000000000077 Maçã 4,00 7892840812416 Pão 7,50Ele tá pegando o valor total dos primeiros itens agrupados e "atribuindo" aos outros também. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gabriel Cabral Postado Maio 11, 2010 Autor Denunciar Share Postado Maio 11, 2010 Resolvido!O problema é que meu relatório, em Rave Reports, não tinha o alias TOTAL pra colocar lá...Então coloquei um campo TOTAL no rave e agora está tudo certo.Valeu kuroi Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Gabriel Cabral
Oi gente.
Desculpem, mas não soube me expressar muito bem no título do tópico.
Estou fazendo um relatório que lista os produtos vendidos, buscado na tabela de vendas.
Mas não é para listar os produtos reptidas vezes.
Por exemplo: Pão Francês foi vendido várias vezes em um dia, então terá vários registros em que o campo VENDES é Pão Francês.
Eu preciso imprimir tal produto uma vez só, em apenas uma linha... mas preciso também, junto com ele, a somatória do valor total dos pães vendidos.
Supondo que na tabela tenha:
Preciso que no relatório fique:Já tentei de tudo...
group by, select distinct [mas esse não vai funcionar, pois os campos não tem valores iguais em todos os registros]
O que vocês sugerem que eu faça?
Muito obrigado
Editado por Gabriel CabralLink para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.