[firebase-br] O que tem de errado no meu sql

Pha-Lista lista em pha.com.br
Sex Fev 4 15:39:46 -03 2005


A regra é a seguinte pelo menos para o DB2 e o FB .

Todos os campos que não tiverem uma funcao (SUM, MAX, MIN, Etc) agregada devem aparacer no group by.


Você pode contornar isso usando o MAX ou MIN, em um campo que você sabe que é constante.

select A.CD_CLIENTE, Max(B.DS_CLIENTE) as DS_CLIENTE, Sum(A.VL_Total) from MOVDUP A

join CLIENTE B ON A.CD_CLIENTE = B.CD_CLIENTE

group by CD_CLIENTE


Repare no MAX, ele substitui o campos DS_NOME do group by, este mesmo select poderia ser assim.


select A.CD_CLIENTE, B.DS_CLIENTE, Sum(A.VL_Total) from MOVDUP A

join CLIENTE B ON A.CD_CLIENTE = B.CD_CLIENTE

group by CD_CLIENTE, B.DS_CLIENTE


Nao analisei o seu select mais se todos os campos do select fazem parte do group by, você pode utilizar Distinct em vez do group by, colocar um campo Count(*), ou Max ou Min em um dos campos, para que o comando seja executado no FB.

OBSERVE O CAMPO documento_tbl.doc_id, não tem nenhum funcao de agregacao e nem aparece no group by, isso causa o erro que você passou.

PHA
Nova Odessa / SP - Brazil


-----Mensagem original-----
From: João Borges Claudino Junior	joao.claudino em lanweb.com.br
Date: Fri,  4 Feb 2005 14:16:22 -0300
To: "FireBase" lista em firebase.com.br
Subject: Re: [firebase-br] O que tem de errado no meu sql

> pois é naum tem, mas como que no post gres ele funciona assim mesmo?
> qual dos agrupadores eu tenho que usar?
> 
> ----- Original Message ----- 
> From: "Stock" <stock_rp em yahoo.com.br>
> To: <lista em firebase.com.br>
> Sent: Friday, February 04, 2005 3:09 PM
> Subject: Res: [firebase-br] O que tem de errado no meu sql
> 
> 
> so uma pergunta...
> 
> Kd o campo pra agrupar?
> se vc nao agrupar nenhum campo nao pode usar o goup by
> 
> tipo
> 
> avg, sum, count....
> 
> robson em jograu.com.br
> 600 modelos de sites profissionais - Imperdivel
> http://www.kitsites.com/index.php?ref=50
> 
> -------Mensagem original-------
> 
> De: FireBase
> Data: 02/04/05 14:55:32
> Para: FireBase
> Assunto: [firebase-br] O que tem de errado no meu sql
> 
> fiz uma importação do Post Gres para O Interbase, agora quando vou ex> ecutar
> este select dá o seguinte erro:
> Dynamic SQL Error
> SQL error code = -104
> invalid column reference
> 
> testei e percebi que c tirar toda a clausuda group by ele funcinona, mas
> naum podereia ser assim, preciso com urgência, obrigado!!
> obs: todos os campos estão no meu DB, pode ser bug?
> 
> SQL:
> select documento_tbl.doc_id, documento_tbl.area_id, documento_tbl.doc_aut> or,
> documento_tbl.doc_corpodoc,
> documento_tbl.doc_data, documento_tbl.doc_dtincdoc,
> documento_tbl.doc_estruturaus, documento_tbl.doc_numatodec,
> documento_tbl.doc_numnorma, documento_tbl.doc_numrec,
> documento_tbl.doc_numsumula, documento_tbl.doc_pagina,
> documento_tbl.doc_qualificacaoautor, documento_tbl.doc_text1,
> documento_tbl.doc_text2, documento_tbl.doc_titulo,
> documento_tbl.sc_id, documento_tbl.item_id, documento_tbl.materia_id,
> documento_tbl.ministerio_id,
> documento_tbl.orgexp_id, documento_tbl.orgjulg_id,
> documento_tbl.prdc_id_informativo, documento_tbl.relator_id,
> documento_tbl.sutcu_id, documento_tbl.topico_id, documento_tbl.tpatodec_i> d,
> documento_tbl.tpnorma_id,
> documento_tbl.tprec_id, documento_tbl.tribunal_id,
> documento_tbl.tribunal_stfstj_id, periodico_documento_tbl.prdc_id,
> ministerio_tbl.ministerio_sigla, ministerio_tbl.ministerio_descricao,
> orgaoexpedidor_tbl.orgexp_sigla,
> orgaoexpedidor_tbl.orgexp_descricao, orgaojulgador_tbl.orgjulg_descricao,
> tiporecurso_tbl.tprec_descricao,
> tiponorma_tbl.tpNorma_Descricao, tipoatodecisorio_tbl.tpatodec_descricao,
> item_tbl.item_nome,
> tribunal_tbl.tribunal_descricao, tribunal_tbl.tribunal_sigla
> from documento_tbl
> join periodico_documento_tbl on
> documento_tbl.doc_id=periodico_documento_tbl.doc_id
> inner join edicao_tbl on documento_tbl.ed_id=edicao_tbl.ed_id
> left join tiponorma_tbl on documento_tbl.tpNorma_Id=tiponorma_tbl.tpNor> ma_Id
> left join ministerio_tbl on
> documento_tbl.ministerio_id=ministerio_tbl.ministerio_id
> left join orgaoexpedidor_tbl on
> documento_tbl.orgexp_id=orgaoexpedidor_tbl.orgexp_id
> join item_tbl on documento_tbl.item_id=item_tbl.item_id
> left join tiporecurso_tbl on documento_tbl.tprec_id=tiporecurso_tbl.tpr> ec_id
> left join orgaojulgador_tbl on
> documento_tbl.orgjulg_id=orgaojulgador_tbl.orgjulg_id
> left join tribunal_tbl on documento_tbl.tribunal_id=tribunal_tbl.tribun> al_id
> left join tipoatodecisorio_tbl on
> documento_tbl.tpatodec_id=tipoatodecisorio_tbl.tpatodec_id
> where documento_tbl.ed_id=166
> group by item_tbl.item_nome, documento_tbl.doc_pagina, documento_tbl.doc_> id,
> documento_tbl.area_id,
> documento_tbl.doc_autor, documento_tbl.doc_corpodoc, documento_tbl.doc_da> ta,
> documento_tbl.doc_dtincdoc,
> documento_tbl.doc_estruturaus, documento_tbl.doc_numatodec,
> documento_tbl.doc_numnorma, documento_tbl.doc_numrec,
> documento_tbl.doc_numsumula, documento_tbl.doc_qualificacaoautor,
> documento_tbl.doc_titulo, documento_tbl.sc_id, documento_tbl.item_id,
> documento_tbl.materia_id,
> documento_tbl.ministerio_id, documento_tbl.orgexp_id,
> documento_tbl.orgjulg_id, documento_tbl.prdc_id_informativo,
> documento_tbl.relator_id, documento_tbl.sutcu_id, documento_tbl.topico_id> ,
> documento_tbl.tpatodec_id,
> documento_tbl.tpnorma_id, documento_tbl.tprec_id, documento_tbl.tribunal_> id,
> documento_tbl.tribunal_stfstj_id,
> periodico_documento_tbl.prdc_id, ministerio_tbl.ministerio_sigla,
> ministerio_tbl.ministerio_descricao,
> orgaoexpedidor_tbl.orgexp_sigla, orgaoexpedidor_tbl.orgexp_descricao,
> orgaojulgador_tbl.orgjulg_descricao,
> tiporecurso_tbl.tprec_descricao, tiponorma_tbl.tpNorma_Descricao,
> tipoatodecisorio_tbl.tpatodec_descricao,
> tribunal_tbl.tribunal_descricao, tribunal_tbl.tribunal_sigla  order by
> documento_tbl.doc_pagina
> 
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuragco na lista, use o enderego http://mail.firebas> e
> com.br/mailman/listinfo/lista_firebase.com.br
> 
> 
> --
> No virus found in this incoming message.
> Checked by AVG Anti-Virus.
> Version: 7.0.300 / Virus Database: 265.8.5 - Release Date: 03/02/2005
> 
> .
> 
> 
> -------------------------------------------------------------------------> ---
> ----
> 
> 
> No virus found in this outgoing message.
> Checked by AVG Anti-Virus.
> Version: 7.0.300 / Virus Database: 265.8.5 - Release Date: 03/02/2005
> 
> 
> 
> -------------------------------------------------------------------------> ---
> ----
> 
> 
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> 
> 
> 
> 





Mais detalhes sobre a lista de discussão lista