Hi,
I have a CASE statement of which doesn't quite work but not sure how to make it work.
I have an account with the following criteria
Length - 4 months
Value - £16000
Monthly Payment £4000
Payable Months - Sep-Oct-Nov-Dec
Date In - 2013-09-01
Date Out - 2013-12-01
So my case statement needs to show payment of £4,000 for 3 months but the logic I use only shows a payment for September - October and November and doesn't include December, any idea how I resolve this please?
NOTE - THE CASE STATEMENT ONLY SHOWS SEPT AS TOO BIG TO INCLUDE OCTOBER - NOVEMBER AND DECEMBER BUT THE LOGIC IS THE SAME JUST CHANGE OF DATE.
SELECT
BASE.CLIENT_CODEAS CLIENT_CODE,
BASE.JOB_NUMBERAS JOB_NUMBER,
BASE.TOTAL_CONTRACT_VAL_NEWAS CONTRACT_VALUE,
BASE.DATE_INAS DATE_IN,
BASE.DATE_REQUIREDAS _DATE_REQUIRED,
CAST(CASEWHENROUND(DATEDIFF(D,BASE.DATE_IN, BASE.DATE_REQUIRED)/(365.0/12.0),0)= 0THEN 1ELSE
ROUND(DATEDIFF(D,BASE.DATE_IN, BASE.DATE_REQUIRED)/(365.0/12.0),0)ENDASINT)AS CONTRACT_LENGTH,
BASE.TOTAL_CONTRACT_VAL_NEW/
CAST(CASEWHENROUND(DATEDIFF(D,BASE.DATE_IN, BASE.DATE_REQUIRED)/(365.0/12.0),0)= 0THEN 1ELSE
ROUND(DATEDIFF(D,BASE.DATE_IN, BASE.DATE_REQUIRED)/(365.0/12.0),0)ENDASINT) AS MONTHLY_AMOUNT,
CASEWHEN'2013-09'>=FORMAT(BASE.DATE_IN,'yyyy-MM')AND'2013-09'<FORMAT(BASE.DATE_REQUIRED,'yyyy-MM')
THEN BASE.TOTAL_CONTRACT_VAL_NEW/
CAST(CASEWHENROUND(DATEDIFF(D,BASE.DATE_IN, BASE.DATE_REQUIRED)/(365.0/12.0),0)= 0THEN 1ELSE
ROUND(DATEDIFF(D,BASE.DATE_IN, BASE.DATE_REQUIRED)/(365.0/12.0),0)ENDASINT)
ENDAs SEP13,
FROM DBO.BASE