[英]Provide status of an Activity based on date column in a view in SQL Server
在視圖中必須提供基於日期的Status
。
條件是:
如果其中一項活動沒有該人的日期,則Status
為Active
如果所有活動都有該人的日期,則“ Status
為“ Not Active
如何獲得一個人的STATUS
?
例如:
|PersonId|Name|Activity | Date |
+--------+----+---------+-----------+
| 1 |John| a | 01/01/2015|
| 1 |John| b | 03/12/2016|
| 1 |John| c | 02/13/2017|
| 2 |Sam | d | 06/01/2014|
| 2 |Sam | e | 05/18/2016|
| 2 |Sam | f | NULL |
視圖中的輸出:
|PersonId|Name|Status |
+--------+----+----------+
| 1 |John|Not Active|
| 2 |Sam | Active |
您可以通過聚合來做到這一點:
select personid, name,
(case when count(*) = count(date) then 'Not Active' else 'Active' end) as status
from t
group by personid, name;
我認為戈登的答案更好,但是自從我開始輸入答案以來,我認為我還是會完成它的。 就像是
declare @maxDate date = datefromparts(9999, 12, 31)
select case when max(isnull(Date, @MaxDate)) = @maxDate) then 'Active' else 'inactive'
from ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.