CAMPOS FORA DO GROUP BY

27/03/2013

1

Ola a todos

Uso FireBird 2.0 e Delphi 7 + clientdataset , estou tendo um problema em nao conseguir exibir campos que estao fora da condicao do GROUP BY , tipo agrupo 2 campos para poder somar os valores , mas tenho que informar outros 2 campos que nao podem ser agurpados junto.
Ja procurei a nao achei nada para me basear e criar o q presciso .

Ha detalhe uso 3 tabelas para isso

Vou tentar explicar

tabela 1 - dados do cliente
tabela 2 - vendas
tabela 3 - itens da venda

presciso do cnpj, ie, e uf do cliente que busco pelo idcliente com o inner join
presciso da data da venda que pego na tabela 1
presciso agrupar na tabela 3 o CFOP e ALIQICMS , para somar os valores base de calculo de cada item .

isso tudo para gerar o REGISTRO50 do sintegra.

presciso comecar por uma para fazer os outros , ate tenho mas minha sql esta dando muito erro nos valores e acho que deve ser por eu agrupar por todos os campos .

espero ter explicado direito .

abaixo a SQL que estou usando

CommandText:='SELECT NF_SAIDA.NUM_NF, NF_SAIDA.SERIE_NF, NF_SAIDA.MODELO_NF,NF_SAIDA.SITUACAO_NF, ' +
'CLIENTES_CAD.CNPJ,CLIENTES_CAD.ICMS, NF_SAIDA.DATAHORA_EMISSAO, '+
'NF_SAIDA_itens.CFOP,NF_SAIDA_itens.ALIQ_ICMS, CLIENTEs_cad.uf, SUM(NF_SAIDA_itens.QTDE * NF_SAIDA_itens.VLUND) TOTAL_BASE_ICMS, '+ ////NF_SAIDA_itens.BASE_ICMS
'SUM( NF_SAIDA_itens.BASE_ICMS_ST) TOTAL_BASE_ICMSST, '+
'SUM( NF_SAIDA_itens.VLICMS) TOTAL_ICMS, '+
'SUM( NF_SAIDA_itens.VLST) TOTAL_ICMSST, '+
'SUM(NF_SAIDA_itens.QTDE*NF_SAIDA_itens.VLUND) TOTALPRODUTO '+
'FROM NF_SAIDA '+
'LEFT OUTER JOIN NF_SAIDA_itens ON (NF_SAIDA_itens.num_nf = NF_SAIDA.num_nf) '+
'LEFT OUTER JOIN CLIENTES_CAD ON (NF_SAIDA.COD_CLI_destinatario = CLIENTES_CAD.id_codigo) '+
'WHERE (NF_SAIDA.DATAHORA_EMISSAO BETWEEN :dtini and :dtfim) '+
'GROUP BY NF_SAIDA.NUM_NF, NF_SAIDA.SERIE_NF, NF_SAIDA.MODELO_NF,NF_SAIDA.SITUACAO_NF, '+
'CLIENTES_CAD.CNPJ, CLIENTES_CAD.ICMS, CLIENTEs_cad.uf, NF_SAIDA.DATAHORA_EMISSAO,NF_SAIDA_itens.CFOP,NF_SAIDA_itens.ALIQ_ICMS '+
'order by nf_saida.num_nf';
Params.ParamByName('dtini').AsDate:=DT_Inicial.Date;
Params.ParamByName('dtfim').AsDate:=DT_Final.Date;
open;

obrigado desde ja.

Att

Paulo
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira