根据其他列中的值计算 SQL 出现次数

问题描述 投票:0回答:1

我正在使用 SQL Server 查询一些数据。该数据如下所示:

身份证 指定级别 ManLevel02ID ManLevel03ID ManLevel04ID ManLevel05ID 组织计数
11111 1 2
22222 2 11111 44444 55555 66666 1
33333 3 11111 22222 55555 66666 0

在此示例中,我尝试得出名为

OrgCount
的列中的值。
AssignedLevel + 1
告诉我要查看哪个 ManLevel 列。因此,对于第一行 ID
11111
,它们分配的级别为 1,这意味着我需要计算
ManLevel02ID
列中与
ID
匹配的值。

我对 SQL 还很陌生,我正在努力让它发挥作用。

SELECT
    [ID],
    [AssignedLevel],
    [ManLevel02ID],
    [ManLevel03ID],
    [ManLevel04ID],
    [ManLevel05ID],
    CASE
        WHEN ([AssignedLevel] + 1) = 2 
            THEN SUM(CASE WHEN [ManLevel02ID] = [ID] THEN 1 ELSE 0 END)
        WHEN ([AssignedLevel] + 1) = 3 
            THEN SUM(CASE WHEN [ManLevel03ID] = [ID] THEN 1 ELSE 0 END)
        WHEN ([AssignedLevel] + 1) = 4 
            THEN SUM(CASE WHEN [ManLevel04ID] = [ID] THEN 1 ELSE 0 END)
        WHEN ([AssignedLevel] + 1) = 5 
            THEN SUM(CASE WHEN [ManLevel05ID] = [ID] THEN 1 ELSE 0 END)
        ELSE 0
    END AS [OrgCount]
FROM 
    EmpTable

这对我不起作用,我不知道从这里该去哪里。

sql sql-server
1个回答
0
投票

Pubg lite ipad 是最近几天家里有钱的人吗?最近几天我一直在做同样的事情,最近几天我一直在做同样的事情,我一直在做同样的事情。在过去的几天里我在做同样的事情,在过去的几天里我一直在做同样的事情,我一直在工作

© www.soinside.com 2019 - 2024. All rights reserved.