dolci 0 Denunciar post Postado Setembro 30, 2009 Pessoal estou com um programa grave, pois não tenho conhecimento muito aprofundado de QuickReport. Estoiu usando Delphi 7 com Firebird, ClienteDataSet e DBExpress para fazer uma sistema de cadastro de exames. Segue tabelas: EXAMESEFETUADOS cod data exame1 exame2 exame3 exame4 TIPOEXAMES cod nome Quero um relatório onde pegava todos os dados dos campos exame1, exame2, exame3 e exame4 que listasse, mas de uma forma que não se repita na lista, somente colocasse na frente a quantidade que se repetiu. Tipo assim Tenhoo exame de crânio (por exemplo) que se repete 10 vezes, somente listasse uma vez e clocosse o 10 na frete, independente se o exame crânio esteja no campo exame1, exame2, exame3 ou exame4. Colegas. Dá uma força aí!!! Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Setembro 30, 2009 Amigo, seu problema é algo que pode ser resolvido com um select usando count e group by, desde que monte os joins entre as tabelas apropriadamente... algo do tipo.... Select A.campoA, B.campoB, count(A.*) from tabelaA A inner joint tabelaB B on (A.codigo = B.codigo) group by A.campoA, B.campoB []'s Compartilhar este post Link para o post Compartilhar em outros sites
dolci 0 Denunciar post Postado Setembro 30, 2009 Chrnos Não resolveu não, veja o erro no imagem abaixo: Acredito que seja porque o campo COD da tabela TIPOEXAMES está não só relacionado ao campo EXAME1 e também aos campos EXAME2, EXAME3 e EXAME4. Veja o select: Select EX.EXAME1, EX.EXAME2, EX.EXAME3, EX.EXAME4, count(EX.*) from EXAMES inner join TIPOEXAMES TI on (EX.EXAME1 = TI.COD) group by EX.EXAME1, TI.COD Compartilhar este post Link para o post Compartilhar em outros sites
Chrnos 30 Denunciar post Postado Setembro 30, 2009 O comando group by exige que apenas colunas declaradas explicitamente no retorno sejam usadas na cláusula... uma dica que lhe dou é que teste no BD suas querys antes de codificar no delphi. Em todo caso, ficaria +/- assim sua query com o group by. Select EX.EXAME1, EX.EXAME2, EX.EXAME3, EX.EXAME4, count(EX.*) from EXAMES inner join TIPOEXAMES TI on (EX.EXAME1 = TI.COD) group by EX.EXAME1, EX.EXAME2, EX.EXAME3, EX.EXAME4 []'s Compartilhar este post Link para o post Compartilhar em outros sites