Showing posts with label amt. Show all posts
Showing posts with label amt. Show all posts

Sunday, February 12, 2012

Concatenation tweaking

I'm trying to create an exception report that compares the 4 amt fields
between 2 tables and then list the column(s) where the amts don't match. I
hard coded the comma from case 2 thru 4 and the resulting text starts with a
comma when PROJ_V_FEE_AMT amts matched. Can someone help me tweak the code?
Thanks.
SELECT PROJ,
PROJ_NAME,
...,
EXCEPTIONS =
CASE
WHEN (p.PROJ_V_FEE_AMT <> PROJ_V_FEE_AMT_PM_SUM) THEN 'PROJ_V_FEE_AMT'
ELSE ''
END
+
CASE
WHEN (p.PROJ_V_CST_AMT <> PROJ_V_CST_AMT_PM_SUM) THEN ', PROJ_V_CST_AMT'
ELSE ''
END
+
CASE
WHEN (p.PROJ_F_FEE_AMT <> PROJ_F_FEE_AMT_PM_SUM) THEN ', PROJ_F_FEE_AMT'
ELSE ''
END
+
CASE
WHEN (p.PROJ_F_CST_AMT <> PROJ_F_CST_AMT_PM_SUM) THEN ', PROJ_F_CST_AMT'
ELSE ''
ENDTry this too:
EXCEPTIONS =
Case When PROJ_V_FEE_AMT_PM_SUM <> Any
(Select p.PROJ_V_FEE_AMT Union Select p.PROJ_V_CST_AMT Union
Select p.PROJ_F_FEE_AMT Union Select p.PROJ_F_CST_AMT)
Then Reverse(Substring(Reverse(
IsNull(CASE WHEN p.PROJ_V_FEE_AMT <> PROJ_V_FEE_AMT_PM_SUM
THEN 'PROJ_V_FEE_AMT' End + ', ', '') +
IsNull(CASE WHEN p.PROJ_V_CST_AMT <> PROJ_V_CST_AMT_PM_SUM
THEN 'PROJ_V_CST_AMT' End + ', ', '') +
IsNull(CASE WHEN p.PROJ_F_FEE_AMT <> PROJ_F_FEE_AMT_PM_SUM
THEN 'PROJ_F_FEE_AMT' End + ', ', '') +
IsNull(CASE WHEN p.PROJ_F_CST_AMT <> PROJ_F_CST_AMT_PM_SUM
THEN 'PROJ_F_CST_AMT'End + ', ', '')), 3, 100))
Else Null End
"danlin" wrote:

> I'm trying to create an exception report that compares the 4 amt fields
> between 2 tables and then list the column(s) where the amts don't match.
I
> hard coded the comma from case 2 thru 4 and the resulting text starts with
a
> comma when PROJ_V_FEE_AMT amts matched. Can someone help me tweak the cod
e?
> Thanks.
> SELECT PROJ,
> PROJ_NAME,
> ...,
> EXCEPTIONS =
> CASE
> WHEN (p.PROJ_V_FEE_AMT <> PROJ_V_FEE_AMT_PM_SUM) THEN 'PROJ_V_FEE_AMT'
> ELSE ''
> END
> +
> CASE
> WHEN (p.PROJ_V_CST_AMT <> PROJ_V_CST_AMT_PM_SUM) THEN ', PROJ_V_CST_AMT'
> ELSE ''
> END
> +
> CASE
> WHEN (p.PROJ_F_FEE_AMT <> PROJ_F_FEE_AMT_PM_SUM) THEN ', PROJ_F_FEE_AMT'
> ELSE ''
> END
> +
> CASE
> WHEN (p.PROJ_F_CST_AMT <> PROJ_F_CST_AMT_PM_SUM) THEN ', PROJ_F_CST_AMT'
> ELSE ''
> END