[firebase-br] select

Antonio Lucas Finotti Pereira lcsfipe em gmail.com
Sex Mar 19 17:39:33 -03 2010


Paulo,

vou pegar o sql que vc passou e dar uma fuçada.

estou colocando aqui um sql que fiz, nele usei sub-queryes... a função dele
é trazer algunas informações do funcionário, e depois a data de primeira
venda/valor, ultima venda/valor, maior venda/valor e outras.
e nele eu verifico se existe algum titulo para o cliente... usei (exists).

acredito que ele possa te ajudar.

assim que fazer alguma coisa com seu sql lhe aviso.

espero ter ajudado.

att,



SELECT  NOME, LPAD(CLI.CPF,20,'0') CPF, LPAD(CLI.RG,20,'0') RG,
        (SELECT MIN(RT.DATAREG)
         FROM   RTITULO RT
         WHERE  RT.CODCLI = CLI.CODIGO) DATAPRIC,
        (SELECT RT.VALOR
         FROM   RTITULO RT
         WHERE  RT.CODCLI = CLI.CODIGO
         AND    RT.TITULO = ( SELECT   MIN(RT2.TITULO)
                              FROM     RTITULO RT2
                              WHERE    RT2.CODCLI = RT.CODCLI ) ) VALORPRIC,
        (SELECT MIN(RT.DATAREG)
         FROM   RTITULO RT
         WHERE  RT.CODCLI = CLI.CODIGO
         AND    RT.VALOR = ( SELECT MAX(RT2.VALOR)
                             FROM   RTITULO RT2
                             WHERE  RT2.CODCLI = RT.CODCLI ) ) DATAMAIORC,
        (SELECT MAX(RT.VALOR)
         FROM   RTITULO RT
         WHERE  RT.CODCLI = CLI.CODIGO) VALORMAIORC,
        (SELECT MAX(RT.DATAREG)
         FROM   RTITULO RT
         WHERE  RT.CODCLI = CLI.CODIGO) DATAULTC,
        (SELECT MAX(RT.VALOR)
         FROM   RTITULO RT
         WHERE  RT.CODCLI = CLI.CODIGO
         AND    RT.DATAREG = (  SELECT  MAX(RT2.DATAREG)
                                FROM    RTITULO RT2
                                WHERE   RT2.CODCLI = RT.CODCLI ) )
VALORULTC,
        (SELECT (SUM(RT.VALOR) - SUM(RT.VLRPAGO))
         FROM   RTITULO RT
         WHERE  RT.CODCLI = CLI.CODIGO ) VALORDEVIDO,
        (SELECT coalesce(MAX(MOV.DATAREG),'00.00.0000')
         FROM   MOVIMENTO MOV, RTITULO RT
         WHERE  RT.CODCLI = CLI.CODIGO
         AND    MOV.TPESP = RT.TPDOC
         AND    MOV.CODDOC = RT.TITULO ) DATAULTPGTO,
        (SELECT coalesce(MAX(MOV.CREDITO),0)
         FROM   MOVIMENTO MOV, RTITULO RT
         WHERE  RT.CODCLI = CLI.CODIGO
         AND    MOV.TPESP = RT.TPDOC
         AND    MOV.CODDOC = RT.TITULO
         AND    MOV.REGISTRO = (SELECT  MAX(MOV2.REGISTRO)
                                FROM    MOVIMENTO MOV2
                                WHERE   MOV2.DATAREG = MOV.DATAREG
                                AND     MOV2.TPMOV = MOV.TPMOV
                                AND     MOV2.CODDOC = MOV.CODDOC
                                AND     MOV2.TPESP = MOV.TPESP
                                AND     MOV2.CODRECEITA = MOV.CODRECEITA) )
VALORULTPGTO
FROM    CLIENTES CLI
WHERE   CLI.CODIGO > 0
AND     EXISTS (SELECT  'X'
                FROM    RTITULO RTT
                WHERE   RTT.CODCLI = CLI.CODIGO)

-- 
Antonio Lucas Finotti Pereira
Analista de Sistemas
antonio-lucas em msn.com
lcsfipe em gmail.com



Mais detalhes sobre a lista de discussão lista