我有一些要排除的行
我的代码:
SELECT DISTINCT T1.FILENUM, T5.OFG, T4.UN
FROM
T1
LEFT OUTER JOIN
T2 ON T1.ID=T2ID
LEFT OUTER JOIN
T3 ON T1.ID = T3.ID
LEFT OUTER JOIN
T4 ON T3.ID=T4ID
LEFT OUTER JOIN
T5 ON T2.ID = T5.ID
WHERE DATECondition
AND T1.FILENUM LIKE 'S%'
AND (T4.UN = 26 OR T4.UN = 25 OR T4.UN = 24 OR T4.UN = 32)
结果
FILENUM OFG UN
S1 S 26
S1 C 25
S1 D 26
S2 S 26
S2 S 24
S3 S 26
S4 S 26
S4 C 25
S5 S 32
S6 S 24
S7 S 25
S7 S 24
这些表的意思是有联合国是用户的filenum记录的投诉和投诉的路由。OFG是投诉人。UN 是路由 Filenums 的用户。
我想补充的是,只有当(OFG 不像 '[cd]%' 或 OFG 为 NULL)时,我还想确保对于一行:如果 OFG 是 C 或 D,请排除所有行甚至如果它有 S。
我想扫描这些行并查看联合国。如果 UN 有 24 且 UN 也是 26 的 filenum 的计数等于或大于 2,则仅显示 un 为 26 的 filenum 行。结果是,我有一个主管用户始终在访问投诉,并且同一用户 (UN) 也仅单独处理投诉。我想表明,如果该主管用户与其他用户一起访问该案例,请不要包括他的行,因为他可能只是在阅读投诉。还有 3 个其他用户我想比较这个管理员用户。
另一个例子,如果 sueprvisor 用户的 filenum 计数为 1,则在我的结果中包含该行。如果 un in (25, 24) 中的 filenum 的计数大于 2,则仅包括 un 为 25 的行。使用 un in (26, 24) 和 un in 重复此操作(32, 24)。
结果 2:
FILENUM OFG UN
S2 S 26
S3 S 26
S5 S 32
S6 S 24
S7 S 25