ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Problema com o group by

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
CtrlRs
Profissional
Profissional


Registrado: Domingo, 30 de Janeiro de 2005
Mensagens: 531

MensagemEnviada: Ter Nov 20, 2007 9:55 am    Assunto: Problema com o group by Responder com Citação

estou com problemas para agrupar os dados por ICM:

Código:

    SQL.Text := 'SELECT ' +

                'NFP.TALAO, NFP.NRONF, NFP.LINHA, NFP.CODPRODUTO, ' +
                'NFP.NOME, NFP.QUANT, NFP.VALOR, NFP.VPDESC, NFP.VDESC, ' +
                'NFP.PDESC, NFP.BONUS, NFP.ST, NFP.ICM, NFP.ICMRED, ' +
                'NFP.ICMISE, NFP.ICMSUB, ' +

                '(NFP.QUANT * NFP.VALOR) as cqTotal ' +

    'FROM NFSAIDAP NFP ' +
    'LEFT OUTER JOIN NFSAIDAC NFC ON (NFC.TALAO = NFP.TALAO) ' +
                                'AND (NFC.NRONF = NFP.NRONF) ' +
    'LEFT OUTER JOIN FICHASCP FCP ON (FCP.CODCP = NFC.CP) ' +
    'LEFT OUTER JOIN USUARIOS U ON (U.CODUSUARIO = NFC.VENDEDOR) ' +

    'WHERE (NFP.Empresa = :Empresa) ' +
      'AND (NFC.DTEMIS >= :DTINI) ' +
      'AND (NFC.DTEMIS <= :DTFIN) ' +

    'AND (NFC.TALAO = :TALAO) ' +
    'AND (NFC.CFOP = :CFOP) ' +

    'GROUP BY NFP.TALAO, NFP.NRONF, NFP.CODPRODUTO, NFP.ICM ' +
    'ORDER BY NFC.DTEMIS, NFP.CODPRODUTO ';

Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gustavocco
Administrador
Administrador


Registrado: Sexta-Feira, 6 de Fevereiro de 2004
Mensagens: 4253
Localização: Chapecó - SC

MensagemEnviada: Ter Nov 20, 2007 11:23 am    Assunto: Responder com Citação

Olá CtrlRS, nao analisei a fundo seu sql, mas pelo q notei a grosso modo, vc tem vários campos q nao sao expressao no seu select, e todos estes campos deve aparecer no group by...

Todos estes campos devem estar no group by... não só àqueles q vc colocou:

'NFP.TALAO, NFP.NRONF, NFP.LINHA, NFP.CODPRODUTO, ' +
'NFP.NOME, NFP.QUANT, NFP.VALOR, NFP.VPDESC, NFP.VDESC, ' +
'NFP.PDESC, NFP.BONUS, NFP.ST, NFP.ICM, NFP.ICMRED, ' +
'NFP.ICMISE, NFP.ICMSUB, '

tenta e qqr coisa posta novamente.

flw.
_________________
Top System - www.topsystem.com.br
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
CtrlRs
Profissional
Profissional


Registrado: Domingo, 30 de Janeiro de 2005
Mensagens: 531

MensagemEnviada: Ter Nov 20, 2007 11:29 am    Assunto: Responder com Citação

uhmmm...

expressao?? oque queres dizer com expressao?

no select está os campos que quero exibir no grid e no group by está os campos que desejo agrupar como organizar?

se eu colocar...
'NFP.TALAO, NFP.NRONF, NFP.LINHA, NFP.CODPRODUTO, ' +
'NFP.NOME, NFP.QUANT, NFP.VALOR, NFP.VPDESC, NFP.VDESC, ' +
'NFP.PDESC, NFP.BONUS, NFP.ST, NFP.ICM, NFP.ICMRED, ' +
'NFP.ICMISE, NFP.ICMSUB, '

...o meu group by não terá sentido: inicialmente preciso agrupar por ICM

muito obrigado pela atenção.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
CtrlRs
Profissional
Profissional


Registrado: Domingo, 30 de Janeiro de 2005
Mensagens: 531

MensagemEnviada: Ter Nov 20, 2007 11:40 am    Assunto: Responder com Citação

exemplo:

Código:

    SQL.Text := 'SELECT ' +
                'NFP.TALAO, NFP.NRONF, NFP.CODPRODUTO, NFP.ICM, ' +
                '(NFP.QUANT * NFP.VALOR) as cqTotal ' + ...

    'AND (NFC.TALAO = :TALAO) ' +
    'AND (NFC.CFOP = :CFOP) ' +


...neste caso fui obrigado a colocar o total(cqTotal) no group by tambem:

Código:

    'GROUP BY 1,2,3,4,5 ORDER BY 1,2,3,4,5 ';


... a pergunta é: como declarar no select (para exibir no grid) e não ter que agrupar?
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
CtrlRs
Profissional
Profissional


Registrado: Domingo, 30 de Janeiro de 2005
Mensagens: 531

MensagemEnviada: Sex Nov 23, 2007 9:37 am    Assunto: Responder com Citação

"sobe"
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
thomazs
Moderador
Moderador


Registrado: Segunda-Feira, 1 de Março de 2004
Mensagens: 2835

MensagemEnviada: Sex Nov 23, 2007 2:10 pm    Assunto: Responder com Citação

Posso não ter visto, mas cadê a função agregadora (count, sum, max, min,avg)???
_________________
Suporte e Consultoria em Desenvolvimento de Sistemas
Bacharel em Sistemas de Informação
Especialista em Bancos de Dados
Desenvolvimento: Clipper, Delphi, PHP, Python/Django
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular MSN Messenger
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB