Quantcast
Channel: Forum Getting started with SQL Server
Viewing all articles
Browse latest Browse all 7129

Monthly Values Logic

$
0
0

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



Viewing all articles
Browse latest Browse all 7129

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>