INSTRU��ES
--------------------------------------------------
O que eu queria executar, caso o registro correspondente a esta Ordem de produ��o, ou seja, o registro com data de "31/07/2019" na B9 n�o existisse, sendo que a OP foi encerrada no mes 07, gostaria que trouxesse o numero ZERO para o "CUS_STD", para identificarmos que tem algo errado na SB9.

Qual � a sequencia logica da linha do problema:
IIF(O encerramento da OP � neste mes?,B1_CUSTD,IIF( N�o �? A B9_CUSTD esta Nula?, IIF(A diferen�a entre a data de encerramento da OP e a data de Hoje � maior que 45?, 0, B1_CUSTD),B9_CUSTD)))

OBS: Se eu subistituo a ultima condi��o do ultimo IIF para 47 >= 45, ele retorna ZERO como deveria.
OBS�:Ja debuguei para verificar os valores, ja utilizei uma variavel de fora que retornasse "47", e nada.
--------------------------------------------------

SELECT
	D4_TRT AS ITEM,

	D4_COD AS CODIGO,

	B1_DESC AS DESCRICAO,

	(IIF((MONTH(C2_DATRF) = MONTH(GETDATE()) AND YEAR(C2_DATRF) = YEAR(GETDATE())),B1_CUSTD,IIF(B9_CUSTD IS NULL,IIF(DATEDIFF(day, C2_DATRF, GETDATE()) >= 45 , 0 ,B1_CUSTD),B9_CUSTD))) AS CUS_STD

	FROM %Table:SC2% C2
	INNER JOIN %Table:SD4% D4 ON D4.D4_OP = (C2_NUM + C2_ITEM + C2_SEQUEN) AND D4.D_E_L_E_T_=' ' AND C2.D_E_L_E_T_=' '
	INNER JOIN %Table:SB1% B1 ON D4_COD = B1_COD
	LEFT JOIN %Table:SG1% G1 ON C2_PRODUTO = G1.G1_COD AND G1_TRT = D4_TRT AND G1.D_E_L_E_T_=' '
	LEFT JOIN %Table:SB9% B9 ON B9.B9_COD = D4_COD AND MONTH(B9.B9_DATA) = MONTH(C2_DATRF) AND YEAR(B9.B9_DATA) = YEAR(C2_DATRF) AND 	B9.B9_LOCAL = C2_LOCAL AND B9.D_E_L_E_T_ = ' '
	WHERE  D4.D4_OP = %EXP:(alSD4)->D4_OP%
	GROUP BY G1_TRT,D4_COD,B1_DESC,D4_QTDEORI,G1_QUANT,C2_QUANT,B9_CUSTD,D4_TRT,C2_DATRF,B1_CUSTD,D4_COD,G1_PERDA

	UNION

	SELECT DISTINCT G1.G1_TRT AS ITEM,

	G1.G1_COMP AS CODIGO,

	B1_DESC AS DESCRICAO,

	(IIF((MONTH(C2_DATRF) = MONTH(GETDATE()) AND YEAR(C2_DATRF) = YEAR(GETDATE())),B1_CUSTD,IIF(B9_CUSTD IS NULL,IIF(DATEDIFF(day, C2_DATRF, GETDATE()) >= 45 , 0 ,B1_CUSTD),B9_CUSTD))) AS CUS_STD

	FROM %Table:SC2% C2
	INNER JOIN %Table:SD4% D4 ON D4.D4_OP = (C2_NUM + C2_ITEM + C2_SEQUEN) AND D4.D_E_L_E_T_=' ' AND C2.D_E_L_E_T_=' '
	INNER JOIN %Table:SG1% G1 ON C2_PRODUTO = G1.G1_COD AND G1_COMP+G1_TRT NOT IN (SELECT D4_COD+D4_TRT FROM %Table:SD4% D4 WHERE  D4_OP = %EXP:(alSD4)->D4_OP% AND D4.D_E_L_E_T_= ' ') AND G1.D_E_L_E_T_=' '
	INNER JOIN %Table:SB1% B1 ON G1_COMP = B1_COD
	LEFT JOIN %Table:SB9% B9 ON B9.B9_COD = G1_COMP AND MONTH(B9.B9_DATA) = MONTH(C2_DATRF) AND YEAR(B9.B9_DATA) = YEAR(C2_DATRF) AND B9.B9_LOCAL = C2_LOCAL AND B9.D_E_L_E_T_ = ' '
	WHERE  D4.D4_OP = %EXP:(alSD4)->D4_OP%
	GROUP BY G1_TRT,G1_COMP,B1_DESC,D4_QTDEORI,G1_QUANT,C2_QUANT,B9_CUSTD,D4_TRT,C2_DATRF,B1_CUSTD,D4_COD,G1_PERDA
	ORDER BY  D4_TRT ASC