问题如何在SQL Server中创建这个
IF ADJ_DAYS_OFF_FLAG= '1' and ADJ_CONSECUTIVE_DAYS ='1'
THEN [value] of ADJ_DAYS_OFF
ELSE [value] of ELIG_DAYS_OFF
我:
<表类> 参与者价值名称 期 tbody><<tr>詹姆斯 0 ADJ_DAYS_OFF_FLAG 2022-12-1 詹姆斯0 ADJ_CONSECUTIVE_DAYS 2022-12-1 詹姆斯0 ADJ_DAYS_OFF 2022-12-1 詹姆斯8 ELIG_DAYS_OFF 2022-12-1 表类>
简单的条件聚合似乎就足够了
SELECT
t.PARTICIPANT,
t.PERIOD,
CONCAT(
(23 - CASE WHEN
SUM(CASE WHEN t.NAME = 'ADJ_DAYS_OFF_FLAG' THEN t.VALUE END) *
SUM(CASE WHEN t.NAME = 'ADJ_CONSECUTIVE_DAYS' THEN t.VALUE END)
> 0 THEN
SUM(CASE WHEN t.NAME = 'ADJ_DAYS_OFF' THEN t.VALUE END)
ELSE
SUM(CASE WHEN t.NAME = 'ELIG_DAYS_OFF' THEN t.VALUE END)
END
) * 100 / 23
,'%')
FROM YourTable t
GROUP BY
t.PARTICIPANT,
t.PERIOD;
,db<的在小提琴
SQL Server有IIF
关键字。(Inline IF
的缩写)
这是一个指南。
下面是一个例子:
SELECT Username,
IIF(Role = 'Manager' OR Role = 'Lead', 1, 0) AS IsSupervisor
FROM Users