Agrupamento por SQL

09/10/2014

0

Bom dia,

possuo duas tabelas a NFE e a Tabela NFE_INUTILIZADA, a tabela NFe_Inutilizada tem relação 1xN para NFE pois na NFE_INUTILIZADA tenho o campo NumInicial e NumFinal podendo ser uma sequencia de numeração a qual terá para cada número um registro na tabela NFE,
a principio estou usando o seguinte SQL:

SELECT I.JUSTIFICATIVA,  I.IDE_DHEMI,  N.IDE_NNFE,  N.IDE_SERIE
   FROM NFE N
LEFT OUTER JOIN NFE_INUTILIZADA I ON I.CD_INUTILIZADA = N.CD_INUTILIZADA
where  (IDE_NNFE BETWEEN :DE AND :ATE)  and  (COALESCE(NFE_INUTILIZADA,'F') = 'V')  and (CSTAT = 102)


Como disse a relação é 1xN então posso ter a mesma JUSTIFICATIVA para vários registros, dessa forma gostaria de agrupar pelos mesmos, por exemplo:

JUSTIFICATIVA | DATA | Nº NFe | Série NF-e |
teste1 | 01/01/14 | 101 | 1 |
| | 102 | 1 |
| | 103 | 1 |
| | 104 | 1 |
teste2 | 05/01/14 | 201 | 1 |
teste3 | 05/01/14 | 208 | 1 |
| | 209 | 1 |
| | 210 | 1 |

Seria algo assim, utilizo o Firebird 2.5, algum amigo teria alguma sugestão?

Obrigado,
Rômulo Mayworm
Jaime Santos

Jaime Santos

Responder

Posts

09/10/2014

Marisiana Battistella

Olá Jaime!
Você precisa incluir a claúsula GROUP BY no SELECT para que as informações sejam agrupadas...
SELECT I.JUSTIFICATIVA, 
               I.IDE_DHEMI,
               N.IDE_NNFE,
               N.IDE_SERIE
FROM NFE N
LEFT OUTER JOIN NFE_INUTILIZADA I 
ON I.CD_INUTILIZADA = N.CD_INUTILIZADA
where  (IDE_NNFE BETWEEN :DE AND :ATE)  
and  (COALESCE(NFE_INUTILIZADA,'F') = 'V') 
 and (CSTAT = 102)
GROUP BY I.JUSTIFICATIVA, 
                   I.IDE_DHEMI,
                   N.IDE_NNFE,
                   N.IDE_SERIE
Responder

10/10/2014

Marisiana Battistella

Conseguiu resolver Jaime?
Responder

APRENDA A PROGRAMAR DO ZERO AO PROFISSIONAL

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar