C#实习生 2022-03-31 15:57 采纳率: 60%

# sql判断某一列，加载列的和

###### 问题相关代码，请勿粘贴截图
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-01-31' then d.ryou end) LZY1,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-02-28' then d.ryou end) LZY2,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-03-31' then d.ryou end) LZY3,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-04-30' then d.ryou end) LZY4,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-05-31' then d.ryou end) LZY5,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-06-30' then d.ryou end) LZY6,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-07-31' then d.ryou end) LZY7,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-08-31' then d.ryou end) LZY8,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-09-30' then d.ryou end) LZY9,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-10-31' then d.ryou end) LZY10,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-11-30' then d.ryou end) LZY11,
sum(case when D.RQ BETWEEN '2022-01-01' and '2022-12-31' then d.ryou end) LZY12

###### 我的解答思路和尝试过的方法

sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 1  then D.DYM end)) is null then null else '2022-01-31' end)then d.ryou end) LZY1,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 2  then D.DYM end)) is null then null else '2022-02-28' end)then d.ryou end) LZY2,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 3 then D.DYM end)) is null then null else '2022-03-31' end)then d.ryou end) LZY3,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 4 then D.DYM end)) is null then null else '2022-04-30' end)then d.ryou end) LZY4,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 5 then D.DYM end)) is null then null else '2022-05-31' end) then d.ryou end) LZY5,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 6 then D.DYM end)) is null then null else '2022-06-30' end) then d.ryou end) LZY6,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 7 then D.DYM end)) is null then null else '2022-07-31' end) then d.ryou end) LZY7,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 8 then D.DYM end)) is null then null else '2022-08-31' end) then d.ryou end) LZY8,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 9  then D.DYM end)) is null then null else '2022-09-30' end) then d.ryou end) LZY9,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 10  then D.DYM end)) is null then null else '2022-10-31' end) then d.ryou end) LZY10,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 11 then D.DYM end)) is null then null else '2022-11-30' end) then d.ryou end) LZY11,
sum(case when D.RQ BETWEEN '2022-01-01'  and (case when((case when year(D.RQ) =2022 and month(D.RQ) = 12 then D.DYM end)) is null then null else '2022-12-31' end) then d.ryou end) LZY12

• 写回答

#### 3条回答默认 最新

• bekote 2022-03-31 16:09
关注

case when要在分组求和之前做，像这样
select month,sum(RQ) from (
select month,(case when D.RQ BETWEEN '2022-01-01' and '2022-01-31' then d.ryou end) as RQ from test
) tmp group by month

评论

#### 问题事件

• 已结题 （查看结题原因） 4月1日
• 赞助了问题酬金5元 3月31日
• 修改了问题 3月31日
• 修改了问题 3月31日
• 展开全部

#### 悬赏问题

• ¥15 这个四人抢答器代码哪儿有问题？仿真程序怎么写？
• ¥15 burpsuite密码爆破
• ¥15 关于#ubuntu#的问题，如何解决？（相关搜索：移动硬盘）
• ¥15 scikit安装之后import不了
• ¥15 Ros2编译一个使用opencv的c++节点的时候，报了这个错误，请问怎么解决啊
• ¥15 人脸识别相关算法 YOLO，AI等
• ¥15 spark问题方便加V17675797079
• ¥15 Python代码不打印的原因
• ¥20 微软SEAL库的安装和使用，VS2022环境配置问题
• ¥15 数学问题也不知道那种类型的问题