每月就开始日期和结束日期分配金额
我有桌子
Project_ID
Start_Date
End_Date
BUDGET_Amount
例如:
我需要用SQL返回12行每行表示两个日期和预算值之间的月份年= 1200 /两个日期之间的月份数“12”= 100 $
所以结果就像这个Proj_ID,START_DATE,END_DATE,AMOUNT
使用通用表达式(CTE),您可以生成给定范围内的日期。 这将生成您需要的输出:
;with mycte as
     (
    select cast('1 jan 2017' as datetime) as DateValue
    union all
    select DATEADD(MONTH,1, DateValue)
    from    mycte  
    where   DATEADD(MONTH,1, DateValue) <= '31 dec 2017'
    )
   select 
   1 Proj_ID,
   REPLACE(CONVERT(VARCHAR(11), DateValue, 106), ' ', '-')  START_DATE ,
   REPLACE(CONVERT(VARCHAR(11), DATEADD(DAY, -1, DATEADD(MONTH,1, DateValue))), ' ', '-')   END_DATE  ,
   '100$' AMOUNT
   from    mycte
这将显示几个月的第一天和最后几天。
链接地址: http://www.djcxy.com/p/65619.html上一篇: Distribute amount monthly with respect to start date and end date
下一篇: Grouping per month
