如何关联UserGroup表将SQL查询数据按团队拆分行展示?
按团队统计未结/已结文件的SQL修改方案
你需要关联UserGroup表,并通过分组+条件计数的方式实现按团队拆分统计。以下是具体修改方案:
基础版本(假设账户表直接关联团队表)
如果tblaccount中存在直接关联UserGroup的字段(比如GroupID),可以用以下SQL:
SELECT ug.Team AS [Team], COUNT(CASE WHEN a.CloseDate IS NULL THEN a.AccountID END) AS [Open Files], COUNT(CASE WHEN a.CloseDate IS NOT NULL THEN a.AccountID END) AS [Closed Files] FROM UserGroup ug LEFT JOIN tblaccount a ON ug.GroupID = a.GroupID -- 请根据实际表结构调整关联字段 GROUP BY ug.Team
关联用户表的版本(如果账户通过用户关联团队)
如果账户和团队的关联是通过用户表(比如tbluser)中转的,调整SQL如下:
SELECT ug.Team AS [Team], COUNT(CASE WHEN a.CloseDate IS NULL THEN a.AccountID END) AS [Open Files], COUNT(CASE WHEN a.CloseDate IS NOT NULL THEN a.AccountID END) AS [Closed Files] FROM UserGroup ug LEFT JOIN tbluser u ON ug.GroupID = u.GroupID LEFT JOIN tblaccount a ON u.UserID = a.UserID GROUP BY ug.Team
关键说明
- 使用
LEFT JOIN可以确保即使某个团队没有任何文件,也会出现在结果中(对应统计值为0);如果只需要统计有文件的团队,替换为INNER JOIN即可。 COUNT(CASE ...)会只统计符合条件的非NULL值,刚好满足按状态拆分计数的需求。- 请根据实际数据库中的字段名称调整关联条件(比如
GroupID可能是其他名称)。
内容的提问来源于stack exchange,提问作者NewTo SQL
相关产品推荐
相关产品推荐

