簡體   English   中英

如何比較 SQL Server 中的兩個日期值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM