[firebase-br] SELECT MAX(CAMPO) com Condição específica
Ronaldo Moreira
ronamore em gmail.com
Qui Set 17 13:33:25 -03 2009
Tenta usar o subselect que o Zottis passou. Na verdade não terá como
escapar de uma consulta separada.
Ajustando o subselect:
(SELECT MAX(CR2.DAT_PAGTO) FROM CONTA_A_RECEBER CR2 WHERE AND CR2.COD_CLI =
CL.CODIGO AND CR2.COD_CONTR = C.CODIGO
AND CR2.STATUS = 0 )AS PGTO
2009/9/17 Giovani Rochê <giovaniroche em msn.com>
>
> Ronaldo rodou certinho só q demorou bem mais para a consulta ser realizada.
> Como tem mts registros ta bem pesada. Se tive algo do tipo:
> MAX(CR2.DAT_PAGTO WHERE CR.STATUS = 0) AS PGTO
>
> acho q seria + rápido pq ae iria diminiur o cruzamento de dados com menos 1
> tabela.
>
> > Date: Thu, 17 Sep 2009 09:02:53 -0300
> > From: ronamore em gmail.com
> > To: lista em firebase.com.br
> > Subject: Re: [firebase-br] SELECT MAX(CAMPO) com Condição específica
> >
> > Não sei como fica a questao do Group by, mas tente...
> >
> > SELECT C.CODIGO,ATIVO ,C.COD_CLI, C.NUM_CONTR, COD_CAT,
> > COD_FUNC,C.OBSERVACAO,
> > DATA, CANCELADO, DATA_CANCEL, INADIM, DATVENCCARENCIA, C.STATUS,
> > VARLOR_PARCELA, DATA_VENCIM, CONT_BENE, COBRADOR, CL.NOME AS CLIENTE,
> > CT.DESCR AS CATEGORIA,
> > MIN(CR.DAT_VENC) AS INICIO, MAX(CR.DAT_VENC) AS FIM, MAX(CR2.DAT_PAGTO)
> AS
> > PGTO
> > FROM CONTRATO C,CLIENTE CL, CATEGORIA CT, CONTA_A_RECEBER CR,
> > CONTA_A_RECEBER CR2
> > WHERE C.COD_CLI = CL.CODIGO AND C.COD_CAT = CT.CODIGO
> > AND CR.COD_CLI = CL.CODIGO AND CR.COD_CONTR = C.CODIGO
> > AND CR2.COD_CLI = CL.CODIGO AND CR2.COD_CONTR = C.CODIGO
> > AND CR2.STATUS = 0
> > AND CL.NOME LIKE '%'
> > AND ATIVO = 'S'
> > AND CANCELADO <> 'S'
> > AND C.STATUS = 0
> > GROUP BY C.CODIGO,ATIVO ,C.COD_CLI, C.NUM_CONTR, COD_CAT,
> > COD_FUNC,C.OBSERVACAO,
> > DATA, CANCELADO, DATA_CANCEL, INADIM, DATVENCCARENCIA, C.STATUS,
> > VARLOR_PARCELA, DATA_VENCIM, CONT_BENE, COBRADOR, CLIENTE, CATEGORIA
> > ORDER BY CL.NOME
> >
> >
> > 2009/9/17 Giovani Rochê <giovaniroche em msn.com>
> >
> > >
> > > Olha só o meu SELECT como é:
> > > SELECT C.CODIGO,ATIVO ,C.COD_CLI, C.NUM_CONTR, COD_CAT,
> > > COD_FUNC,C.OBSERVACAO,
> > > DATA, CANCELADO, DATA_CANCEL, INADIM, DATVENCCARENCIA, C.STATUS,
> > > VARLOR_PARCELA, DATA_VENCIM, CONT_BENE, COBRADOR, CL.NOME AS CLIENTE,
> > > CT.DESCR AS CATEGORIA,
> > > MIN(CR.DAT_VENC) AS INICIO, MAX(CR.DAT_VENC) AS FIM, MAX(CR.DAT_PAGTO)
> AS
> > > PGTO
> > > FROM CONTRATO C,CLIENTE CL, CATEGORIA CT, CONTA_A_RECEBER CR
> > > WHERE C.COD_CLI = CL.CODIGO AND C.COD_CAT = CT.CODIGO
> > > AND CR.COD_CLI = CL.CODIGO AND CR.COD_CONTR = C.CODIGO
> > > AND CL.NOME LIKE '%'
> > > AND ATIVO = 'S'
> > > AND CANCELADO <> 'S'
> > > AND C.STATUS = 0
> > > GROUP BY C.CODIGO,ATIVO ,C.COD_CLI, C.NUM_CONTR, COD_CAT,
> > > COD_FUNC,C.OBSERVACAO,
> > > DATA, CANCELADO, DATA_CANCEL, INADIM, DATVENCCARENCIA, C.STATUS,
> > > VARLOR_PARCELA, DATA_VENCIM, CONT_BENE, COBRADOR, CLIENTE, CATEGORIA
> > > ORDER BY CL.NOME
> > >
> > > A questão aqui é o MAX(CR.DAT_PAGTO) AS PGTO .
> > > Eu quero a maior data de pagamento da tabela CONTA_A_RECEBER quando o
> > > campo
> > > status desta mesma tabela for igual a 0.
> > >
> > > No caso o campo CR.STATUS nem aperece como uma cláusula pq não quero
> > > filtrá-lo.
> > >
> > > _________________________________________________________________
> > > Descubra todas as novidades do novo Internet Explorer 8
> > >
> > >
> http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmail&utm_medium=Tagline&utm_campaign=IE8
> > > ______________________________________________
> > > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > > http://www.firebase.com.br/fb/artigo.php?id=1107
> > > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> > >
> >
> >
> >
> > --
> > Ronaldo Moreira
> >
> > "Existem somente 10 tipos de pessoas no mundo inteiro: Aquelas que
> entendem
> > binário e aquelas que não entendem."
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> _________________________________________________________________
> Descubra todas as novidades do novo Internet Explorer 8
>
> http://brasil.microsoft.com.br/IE8/mergulhe/?utm_source=MSN%3BHotmail&utm_medium=Tagline&utm_campaign=IE8
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
--
Ronaldo Moreira
"Existem somente 10 tipos de pessoas no mundo inteiro: Aquelas que entendem
binário e aquelas que não entendem."
Mais detalhes sobre a lista de discussão lista