Sql server 2008 如何从特定日期持续时间查找活动/非活动状态
示例:(选中活动和非活动) 持续时间-自日期:2011-01-01 截止日期:2014-01-01Sql server 2008 如何从特定日期持续时间查找活动/非活动状态,sql-server-2008,Sql Server 2008,示例:(选中活动和非活动) 持续时间-自日期:2011-01-01 截止日期:2014-01-01 EMPID ACTIVEDATE/REJOINING DATE INACTIVEDATE ----- ------------------------ ----------- 1 NULL '2011-12-31' 2 '2012-01-01' '
EMPID ACTIVEDATE/REJOINING DATE INACTIVEDATE
----- ------------------------ -----------
1 NULL '2011-12-31'
2 '2012-01-01' '2011-12-31'
2 NULL '2013-12-31'
3 '2015-01-01' '2011-12-31'
我需要以下输出:
Active
活跃 一, 二, 三, 请发送准确的SQL查询并满足我的条件 问候 葡萄酒试试这个
SELECT EmployeeID,CASE WHEN (ISNULL(MAX([REJOINING DATE]),'') > GETDATE()) OR (MAX(INACTIVEDATE) >ISNULL(MAX([REJOINING DATE]),'') ) THEN 'INACTIVE'
WHEN (MAX(INACTIVEDATE) < ISNULL(MAX([REJOINING DATE]),'') ) AND (ISNULL(MAX([REJOINING DATE]),'') < GETDATE()) THEN 'ACTIVE'
ELSE 'N/A'
END AS 'Status'
FROM @Table
选择EmployeeID,当(ISNULL(MAX([重新加入日期]),“”)>GETDATE()或(MAX(INACTIVEDATE)>ISNULL(MAX([重新加入日期]),“”))然后为“非活动”时
当(MAX(INACTIVEDATE)
EMPID
-----
SELECT EmployeeID,CASE WHEN (ISNULL(MAX([REJOINING DATE]),'') > GETDATE()) OR (MAX(INACTIVEDATE) >ISNULL(MAX([REJOINING DATE]),'') ) THEN 'INACTIVE'
WHEN (MAX(INACTIVEDATE) < ISNULL(MAX([REJOINING DATE]),'') ) AND (ISNULL(MAX([REJOINING DATE]),'') < GETDATE()) THEN 'ACTIVE'
ELSE 'N/A'
END AS 'Status'
FROM @Table