gpt4 book ai didi

sql - 查询多列不同条件的数据

转载 作者:行者123 更新时间:2023-12-01 06:17:23 25 4
gpt4 key购买 nike

我有一个包含日期列和 3 个不同其他列的表格:X、Y、Z。
我想要获取上个月的日期、X 和 Y,Z 列是所有之前日期的总和。

这是我处理的查询:

SELECT date,
x,
y,
(
SELECT z
FROM Table
WHERE date < DATEADD(DAY, -(DAY(GETDATE())), GETDATE())
)
FROM Table
WHERE date BETWEEN DATEADD(mm, DATEDIFF(mm, 0, GETDATE()) - 1, 0) AND
DATEADD(DAY, -(DAY(GETDATE())), GETDATE());

这是一些示例数据:

enter image description here

这是我想要的结果:

date       | X | Y | Z  
-----------+---+---+---
2019-08-01 | 8 | 8 | 14
2019-08-02 | 2 | 2 | 14

日期,X 和 Y 只是上个月的日期,Z 是所有时间的总和(1+1+2+8+2=14)。

最佳答案

这是一种做你想做的事情的方法:

select t.date, t.x, t.y, t.new_z
from (select t.*, sum(z) over () as new_z,
rank() over (order by year(date) desc, month(date) desc) as seqnum
from t
) t
where seqnum = 1;

其实你也可以这样做:

select top (1) with ties t.date, t.x, t.y, sum(z) over () as z
from t
order by year(date) desc, month(date) desc;

关于sql - 查询多列不同条件的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57963646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com