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