Galera, boa tarde!
Estou com esta query
SELECT DISTINCT TOP 10
DM01.DM001_010 AS CLIENTE,
DM22.DM022_010 AS SACADO,
ISNULL((SELECT SUM(FATO.OPFT001_110)WHERE DM62.DM062_000 IN (1,2) ),0) AS CARTEIRA,
ISNULL((SELECT SUM(FATO.OPFT001_110) WHERE DM62.DM062_000 IN (1)),0) AS VENCER,
ISNULL((SELECT SUM(FATO.OPFT001_110)
WHERE
DM62.DM062_000 IN (2)
AND FX.sk_fx_pgto >= 1 --FAIXA DE PAGAMENTO FILTRADA
)
,0)AS VENCIDO,
ISNULL((SELECT SUM(FATO.OPFT001_110) -- VALOR VENCIDO ATÉ 5 DIAS
WHERE
DM62.DM062_000 IN (2)
AND FX.sk_fx_pgto = 2
)
,0)AS VCD_5_DIAS,
ISNULL((SELECT SUM(FATO.OPFT001_110) -- VALOR VENCIDO ATÉ DE 6 A 15 DIAS
WHERE
DM62.DM062_000 IN (2)
AND FX.sk_fx_pgto = 3
)
,0)AS VCD_6_15_DIAS,
ISNULL((SELECT SUM(FATO.OPFT001_110) -- VALOR VENCIDO ATÉ DE 16 A 30 DIAS
WHERE
DM62.DM062_000 IN (2)
AND FX.sk_fx_pgto = 4
)
,0)AS VCD_16_30_DIAS,
ISNULL((SELECT SUM(FATO.OPFT001_110) -- VALOR VENCIDO ATÉ DE 31 A 60 DIAS
WHERE
DM62.DM062_000 IN (2)
AND FX.sk_fx_pgto = 5
)
,0)AS VCD_31_60_DIAS,
ISNULL((SELECT SUM(FATO.OPFT001_110) -- VALOR VENCIDO MAIS DE 60 DIAS
WHERE
DM62.DM062_000 IN (2)
AND FX.sk_fx_pgto = 6
)
,0)AS VCD_MAIS_60_DIAS
FROM OPTBFT001 FATO
INNER JOIN TCTBDM022 DM22 ON DM22.DM022_000 = FATO.DM022_000 ---SACADO
INNER JOIN TCTBDM001 DM01 ON DM01.DM001_000 = FATO.DM001_000 ---CLIENTE
INNER JOIN TCTBDM062 DM62 ON DM62.DM062_000 = FATO.DM062_000 ---SITUACAO DE PAGAMENTO
INNER JOIN OPTBDM060 DM60 ON DM60.DM060_000 = FATO.DM099_000 ---TIPO DE LANÇAMENTO
INNER JOIN TCTBDM023 DM23 ON DM23.DM023_000 = FATO.DM023_000 ---EMPRESA
INNER JOIN FNTBDM_FAIXA_PGTO FX ON FX.sk_fx_pgto = FATO.sk_faixa_pgto ---FAIXA DE PAGAMENTO
WHERE
DM01.DM001_010 LIKE '%VITADERM%'
AND FATO.DM099_000 IN(630,640,650,660)
AND FATO.DM023_000 IN(1,2)
AND DM62.DM062_000 NOT IN(3) --SOMENTE EM ABERTO, A VENCER E VENCIDO
GROUP BY
DM01.DM001_010,
DM22.DM022_010,
DM62.DM062_000,
FX.sk_fx_pgto
Em vários retornos do subselect com o SUM estou usando a cláusula sem o FROM.
E este forma a query está funcionando para mim, que eu apenas estou com um problema de agregação.
Eu gostaria de saber se é viável usar este subselect da forma que eu usei. Ou se está errado, qual seria a melhor forma de usar....
Abraço
MCP Windows Server 2003