MSSQL 如何统计单位的子级单位中项的数量

道玄希言 2017-03-20 07:00:27
CorpCode表示单位与子级单位的关系
1 00 (单位)
2 0000 (单位00的子级单位)
3 000000 (单位0000的子级单位)

IsOnLine 表示该项是否在线: 1 在线, 0 不在线

--数据
WITH corp(CorpRID, CorpCode, IsOnLine) AS
(
SELECT 1, '00', 0 UNION ALL
SELECT 1, '00', 1 UNION ALL
SELECT 2, '0000', 0 UNION ALL
SELECT 2, '0000', 1 UNION ALL
SELECT 3, '000000', 0 UNION ALL
SELECT 3, '000000', 1
)
--希望结果
单位ID 规则 总数 在线数
CorpRID, CorpCode, countall, contOnLine
1 00 6 3
2 0000 4 2
3 000000 2 1

...全文
302 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
RINK_1 2017-03-20
  • 打赏
  • 举报
回复
SELECT A.CorpCode,A.CorpRID,COUNT(*) AS countall,SUM(IsOnLine) AS contOnLine FROM (SELECT DISTINCT CorpRID,CorpCode FROM corp) AS A LEFT JOIN corp B ON CHARINDEX(A.CORPCODE,B.CorpCode)<>0 GROUP BY A.CorpCode,A.CorpRID
道玄希言 2017-03-20
  • 打赏
  • 举报
回复
为SQL2008 数据库, 求一个效率高点的查询

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧