【发布时间】:2020-01-24 07:13:29
【问题描述】:
SELECT
sum(case
when "year" = '2016' then "svalue"
ELSE 0
END) as 'sva_2016',
sum(case
when "year" = '2017' then "svalue"
ELSE 0
END) as 'sva_2017',
sum(case
when "year" = '2018' then "svalue"
ELSE 0
END) as 'sva_2018',
sum(case
when "year" = '2019' then "svalue"
ELSE 0
END) as 'sva_2019',
sum(case
when "year" = '2016' then "ltr"
ELSE 0
END) as 'lva_2016',
sum(case
when "year" = '2017' then "ltr"
ELSE 0
END) as 'lva_2017',
sum(case
when "year" = '2018' then "ltr"
ELSE 0
END) as 'lva_2018',
sum(case
when "year" = '2019' then "ltr"
ELSE 0
END) as 'lva_2019',
'Apr 1 - Jan 31' as 'Period',
"code" as 'FACode'
FROM "FCJOIN"
WHERE "code" IN
(
SELECT "fccode"
FROM "fcdetails"
)
AND "month" between '04' and '12'
AND "year" IN ( '2016' , '2017' , '2018' , '2019' )
GROUP BY "code"
上面的查询给了我正确的输出 svalues 和 ltr
- 2016 年 4 月至 2016 年 12 月
- 2017 年 4 月至 2017 年 12 月
- 2018 年 4 月至 2018 年 12 月
- 2019 年 4 月至 2019 年 12 月
现在我想获取 svalues 和 ltrs 在
期间的值- 2016 年 4 月- 2017 年 1 月
- 2017 年 4 月- 2018 年 1 月
- 2018 年 4 月- 2019 年 1 月
- 2019 年 4 月- 2020 年 1 月
【问题讨论】:
-
我强烈建议不要将日期信息存储在单独的年份和月份列中。这只会让你的生活变得非常艰难。
-
您能否添加示例数据和预期输出以获得更好的答案
标签: sql sql-server