[英]How to compare two date values in SQL Server?
我有一個日期為 2018 年和 2019 年的表格,這是我的數據。
select amount, date
from TABLE1
where date in (2018, 2019) and empid = 21120
它對我不起作用,因為查詢說的情況是 date = 2019 然后金額作為我上面的數據,當 date = 2019 時它只會向我顯示金額。 這就是我的結果:
Amount Data
9.67 2019
21 2019
6 2019
9.56 2018
42 2018
7 2018
想要的是什么:2018 年和 2019 年兩個日期的金額之間的差異。
上面的查詢只給了我一行這些日期的金額。
我的預期結果是找出 2018 年和 2019 年之間的金額差異。關於如何獲得差異的任何想法。 我正在嘗試自我加入,但任何幫助表示贊賞。
例如:2019 年金額 9.67 - 2018 年金額 9.56。
您似乎正在尋找條件聚合:
select
sum(case when date = 2019 then amount else 0 end)
- sum(case when date = 2018 then amount else 0 end) diff
from mytable
where empid = 21 and date in (2018, 2019)
該查詢為您提供給定員工 2019 年和 2018 年的總金額之間的差值。
這可以縮短一點:
select sum(case when date = 2019 then amount else -amount end) diff
from mytable
where empid = 21 and date in (2018, 2019)
你可以這樣做
SELECT ABS(SUM(CASE WHEN Data = '2019' THEN Amount ELSE -Amount END)) Diff
FROM
(
VALUES
(9.67 , '2019'),
(21 , '2019'),
(6 , '2019'),
(9.56 , '2018'),
(42 , '2018'),
(7 , '2018')
) T(Amount, Data)
WHERE Data IN ('2018', '2019')
-- AND empid = 21120; Uncomment this when you run it against your table
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.