Fórum concatenar um group de registro #58100

01/04/2007

0

Ola pessoal to com o seguinte problema:
select cd_nf_remetente, cd_nf_destinatario, count(nr_nf), sum(qt_nf_mercadoria), sum(qt_nf_peso), sum(vl_nf_frete) as frete, sum(vl_nf) as nf from item_carga, notafiscal
where cd_itcarga_filial=1 and cd_itcarga_carga=27 and
cd_itcarga_notafiscal=cd_nf
group by cd_nf_remetente, cd_nf_destinatario

No select acima ele me traz o nro de notas q corresponde o group de remetente e destinaratario,
eu quero eh concatenar o nr_nf é possivel tipo ( 100,101, 103). Sera que tem algum comando de concatenar tipo(sum, avg, coun, min)

Abraços.


Fabiotb

Fabiotb

Responder

Posts

02/04/2007

Pestana_

Ola fabiotb, vc quer concatenar dados de colunas? caso sim, vc pode utilizar o operador de concatenação ||

select (campo1 || ´, ´ || campo2) as CampoConcatenado


ve se é isso que vc quer,
flw


Responder

Gostei + 0

02/04/2007

Fabiotb

não é isso.. to vendo q vou fazer uma procedure
obrigado


Responder

Gostei + 0

02/04/2007

Fabiotb

REsolvi criando uma procedure assim:

DECLARE VARIABLE DSNOTA INTEGER;
DECLARE VL_NOTAFISCAL NUMERIC(10,2);
DECLARE VL_FRETE NUMERIC(10,2);
DECLARE QT_MERCADORIA NUMERIC(10,4);
DECLARE QT_PESOS NUMERIC(10,4);
DECLARE VARIABLE AGRUPANF VARCHAR(100);
DECLARE VARIABLE VIRGULA VARCHAR(100);
BEGIN
 VIRGULA=´,´;
 AGRUPANF=´´;
 FOR
   SELECT NR_NF
   FROM ITEM_CARGA, NOTAFISCAL
   WHERE CD_ITCARGA_FILIAL=:FILIAL AND
         CD_ITCARGA_CARGA=:CARGA AND
         CD_NF_REMETENTE=:REMETENTE AND
         CD_NF_DESTINATARIO=:DESTINATARIO AND
         CD_ITCARGA_NOTAFISCAL= CD_NF
   INTO :DSNOTA DO
   BEGIN
     AGRUPANF=:AGRUPANF||:DSNOTA||:VIRGULA;
   END
   NOTAFISCAL=:AGRUPANF;
   SUSPEND;
 END

e finalmente no meu select faço assim:
 select NF.cd_nf_remetente,  NF.cd_nf_destinatario,
  (SELECT NOTAFISCAL FROM GERAR_NF_CONHECIMENTO(IT.CD_ITCARGA_FILIAL,IT.CD_ITCARGA_CARGA,NF.CD_NF_REMETENTE,NF.CD_NF_DESTINATARIO)) AS NOTAS,
   SUM(IT.QT_ITCARGA_TOTAL_PESOS) AS PESOS,
   SUM(IT.QT_ITCARGA_TOTAL_MERCADORIA) AS MERCADORIA,
   SUM(NF.VL_NF_FRETE) as FRETE,
   SUM(NF.VL_NF) as VLNOTAS
    from item_carga IT, notafiscal NF
where cd_itcarga_notafiscal=cd_nf
GROUP BY NF.cd_nf_remetente,  NF.cd_nf_destinatario, IT.CD_ITCARGA_FILIAL,IT.CD_ITCARGA_CARGA,NF.CD_NF_REMETENTE,NF.CD_NF_DESTINATARIO




Obrigado a todos!!
Abraços
Fabio


Responder

Gostei + 0

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

Aceitar