Fórum Colocar Function em um join #462529
29/11/2013
0
use CONCILIACAO_V3
SELECT TOP 10
NFIQtdContas = ISNULL(COUNT(DISTINCT ACG.NR_GUIA_PRESTADOR),0)
, NFIQtdItens = ISNULL(COUNT(DISTINCT RAC.ID_ITEM),0)
, NFIQtdRejeitados = ISNULL(SUM(CASE WHEN CI.COD_STATUS_CONCILIA = 7 THEN 1 ELSE 0 END),0)
, NFIQtdEmAnalise = ISNULL(SUM(CASE WHEN CI.COD_STATUS_CONCILIA = 6 THEN 1 ELSE 0 END),0)
, NFIQtdPagosParciais = ISNULL(SUM(CASE WHEN CI.COD_STATUS_CONCILIA = 2 THEN 1 ELSE 0 END),0)
, NFIQtdPagosIntegrais = ISNULL(SUM(CASE WHEN CI.COD_STATUS_CONCILIA = 1 THEN 1 ELSE 0 END),0)
, NFIQtdValorPagoMaior = -999 ==>AQUI DEVE ENTRAR ESSE CAMPO Q VEM DA TABLE: FX.QTD_PAGO_MAIOR
, NFIValorItens = ISNULL(SUM(RAC.VL_TOT_COBRADO_ITEM),0)
, NFIValorRejeitados = -999
, NFIValorEmAnalise = -999
, NFIValorGlosado = ISNULL(SUM(RAC.VL_TOT_GLOSA_ITEM),0)
, NFIValorPago = ISNULL(SUM(RAC.VL_TOT_PAGO_ITEM),0)
, NFIValorPagosIntegrais = -999
, NFIValorTotalRecuperado = -999
, NFIValorPagoMaior = -999
, NFIValorSaldoGlosa = -999
, NFIValorTotalPago = -999
from RETORNO_ANALISE_CONTAS RAC WITH(NOLOCK)
left join FX_RETORNA_PAGO_MAIOR(2,5349611,1078718,48,51967) FX on FX.ID_Item = RAC.ID_ITEM
inner JOIN AGRE_CONTA_GUIA ACG WITH(NOLOCK) ON rac.NR_GUIA_PRESTADOR = ACG.NR_GUIA_PRESTADOR
inner JOIN CONCILIA_ITEM CI with(nolock) ON CI.ID_LOTE = rac.ID_LOTE
AND CI.ID_CONTA = rac.ID_CONTA
AND CI.ID_ITEM = rac.ID_ITEM
WHERE CI.COD_STATUS_CONCILIA <> 10
AND RAC.COD_EMS = 48
AND ACG.ID_PRESTADOR = 51967
--AND ID_PRESTADOR = 45972
AND RAC.ID_ITEM >= 2
GROUP BY FX.QTD_PAGO_MAIOR
AQUI ESTÁ MINHA FUNCTION:
IF OBJECT_ID (N'DBO.FX_RETORNA_PAGO_MAIOR', N'FN') IS NOT NULL
DROP FUNCTION DBO.FX_RETORNA_PAGO_MAIOR;
GO
CREATE FUNCTION DBO.FX_RETORNA_PAGO_MAIOR(@ID_ITEM INT,@ID_CONTA INT,@ID_LOTE INT,
@COD_EMS NUMERIC(3,0),@ID_PRESTADOR INT)
RETURNS @RET TABLE(ID_ITEM INT,QTD_PAGO_MAIOR INT,VL_TOT_PAGO_ITEM NUMERIC(10,2))
AS
BEGIN
DECLARE @VALOR NUMERIC(10,2);
-- PEGA O TOTAL DE PAGAMENTOS DE RECURSO
SELECT
@VALOR = ISNULL(SUM(VL_TOT_PAGO_ITEM),0)
FROM
RETORNO_RECURSO_GLOSA
WHERE
ID_ITEM = @ID_ITEM AND
ID_CONTA = @ID_CONTA AND
ID_LOTE = @ID_LOTE AND
COD_EMS = @COD_EMS AND
ID_PRESTADOR = @ID_PRESTADOR;
-- COMPARA COM O TOTAL DA VARIÁVEL PARA SABER SE HOUVE PAGO MAIOR OU NÃO
INSERT INTO @RET
SELECT ID_ITEM,
ISNULL(SUM(CASE WHEN VL_TOT_GLOSA_ITEM < @VALOR
THEN 1 ELSE 0 END),0) AS QTD_PAGO_MAIOR,
CASE WHEN SUM(VL_TOT_GLOSA_ITEM) < @VALOR
THEN @VALOR ELSE 0 END AS VALOR_PAGO_MAIOR
FROM
RETORNO_ANALISE_CONTAS
WHERE
ID_ITEM = @ID_ITEM AND
ID_CONTA = @ID_CONTA AND
ID_LOTE = @ID_LOTE AND
COD_EMS = @COD_EMS AND
ID_PRESTADOR = @ID_PRESTADOR
GROUP BY ID_ITEM;
RETURN
END;
GO
Pjava
Curtir tópico
+ 0Posts
29/11/2013
Pjava
ISNULL(SUM(fx.mecampo_aqui),0)
Isso resolveu meu problema.
Gostei + 0
30/11/2013
Roniere Almeida
Gostei + 0
01/12/2013
Mariana Carvalho
Gostei + 0
03/12/2013
Rodrigo Lacerda
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)