每月就开始日期和结束日期分配金额
我有桌子
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