Array
(
)

COMPUTE

Edilsoneto
   - 06 jan 2004

Ola COlegas,

Quero apenas o valor da SUM do COMPUTE, como despresar os valores do select ou como usar ou mostrar este resultado do compute em uma query?

SELECT SUM(C.VR_LANCAMENTO)*((TITULO.VR_PAGO/TITULO.VR_PAGAR)-1)
FROM TITULO WITH(NOLOCK)
, RECIBO
, IMOVEL
, LANCAMENTO_RECIBO AS C
WHERE TITULO.NR_TITULO = RECIBO.NR_TITULO
AND RECIBO.CD_IMOVEL = IMOVEL.CD_IMOVEL
AND TITULO.DT_PAGAMENTO >= ´20030801 00:00:00.000´
AND TITULO.DT_PAGAMENTO <= ´20030831 00:00:00.000´
AND TITULO.ST_TITULO = ´P´
AND TITULO.NT_TITULO = ´R´
AND C.CD_IMOVEL = RECIBO.CD_IMOVEL
AND C.DT_REFERENCIA = RECIBO.DT_REFERENCIA
AND C.NR_RECIBO = RECIBO.NR_RECIBO
AND TITULO.CD_EMPRESA = 8392.0
AND TITULO.CD_CATEGORIA = 265
AND TITULO.VR_PAGO < (SELECT SUM(ISNULL(VR_LANCAMENTO,0))
FROM RECIBO AS A, LANCAMENTO_RECIBO AS B
WHERE TITULO.NR_TITULO = A.NR_TITULO AND
B.CD_IMOVEL = A.CD_IMOVEL AND
B.DT_REFERENCIA = A.DT_REFERENCIA AND
B.NR_RECIBO = A.NR_RECIBO)
GROUP BY RECIBO.CD_IMOVEL, RECIBO.DT_REFERENCIA, RECIBO.NR_RECIBO,
TITULO.VR_PAGO, TITULO.VR_PAGAR, TITULO.CD_EMPRESA
COMPUTE SUM(SUM(C.VR_LANCAMENTO)*((TITULO.VR_PAGO/TITULO.VR_PAGAR)-1))

Fabricio_saldanha
   - 14 jan 2004

edilsoneto,

não sei se eu entendi direito mas se você quer apenas o resultado do sum do compute você não precissa de um compute sua query poderia ser

SELECT SUM(SUM(C.VR_LANCAMENTO)*((TITULO.VR_PAGO/TITULO.VR_PAGAR)-1))
FROM TITULO WITH(NOLOCK)
, RECIBO
, IMOVEL
, LANCAMENTO_RECIBO AS C
WHERE TITULO.NR_TITULO = RECIBO.NR_TITULO
AND RECIBO.CD_IMOVEL = IMOVEL.CD_IMOVEL
AND TITULO.DT_PAGAMENTO >= ´20030801 00:00:00.000´
AND TITULO.DT_PAGAMENTO <= ´20030831 00:00:00.000´
AND TITULO.ST_TITULO = ´P´
AND TITULO.NT_TITULO = ´R´
AND C.CD_IMOVEL = RECIBO.CD_IMOVEL
AND C.DT_REFERENCIA = RECIBO.DT_REFERENCIA
AND C.NR_RECIBO = RECIBO.NR_RECIBO
AND TITULO.CD_EMPRESA = 8392.0
AND TITULO.CD_CATEGORIA = 265
AND TITULO.VR_PAGO < (SELECT SUM(ISNULL(VR_LANCAMENTO,0))
FROM RECIBO AS A, LANCAMENTO_RECIBO AS B
WHERE TITULO.NR_TITULO = A.NR_TITULO AND
B.CD_IMOVEL = A.CD_IMOVEL AND
B.DT_REFERENCIA = A.DT_REFERENCIA AND
B.NR_RECIBO = A.NR_RECIBO)

Realmente não entendi sua pergunta acho que esta é a reposta correta.

Aroldo Zanela
   - 18 fev 2004

Colega,

Por não ser uma notação ANSI, não utilize COMPUTE ou COMPUTE BY para recuperar valor em sua aplicação. É muito útil para testes e relatórios simples no Query Analyzer.