簡體   English   中英

Function 將從 SQL 表中獲取 select 值並根據另一列值進行求和

[英]Function that will select value from SQL table and do a sum based on another column value

我需要一個查詢來總結表中的hours 需要選擇哪些時間取決於Start Date列。 如果開始日期是過去的,則應采用Remaining Hours ,如果是未來的日期,則應采用Budgeted Hours

開始日期 預算時間 剩余時間
2022 年 1 月 1 日 15 3個
2022 年 2 月 1 日 12 0
2022 年 3 月 1 日 14 6個
2022 年 4 月 1 日 15 13

在上面的示例中,總小時數應為 24 (3 + 0 + 6 + 15)。

為此,您不需要 function,只需要一個CASE表達式:

DECLARE @now datetime = GETDATE();

SELECT SUM
(
  CASE WHEN [Start Date] < @now 
  THEN [Remaining Hours]
  ELSE [Budgeted Hours] 
  END
)
FROM dbo.tablename;

我們可以使用 function case

 create table ops( startDate date, Budgeted int, Remaining int);
 insert into ops values ('2022-01-01',15,3), ('2022-02-01',12,0), ('2022-03-01',14,6), ('2022-04-01',15,13), ('2022-05-01',10,18);
 select startDate, Budgeted, Remaining, case when startDate < getDate() then Remaining else Budgeted end Hours from ops;
 開始日期 | 預算 | 剩余 | 營業時間:-------- |  ------: |  ------: |  ----: 2022-01-01 |  15 |  3 |  3 2022-02-01 |  12 |  0 |  0 2022-03-01 |  14 |  6 |  6 2022-04-01 |  15 |  13 |  15 2022-05-01 |  10 |  18 |  10

db<> 在這里擺弄

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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