求个统计sql
用户表 U0
A1 A2
1 101
2 102
3 1001
4 1002
.....
市级表 U1
A1 A2 A3(用户表A2)
1 珠海市 101
2 汕头市 102
3 .... ...
县级表 U2
A1 A2 A3(市级表A1) A4 (用户表A2)
1 斗门区 1 1001
2 金湾区 1 1002
....
新闻表 N1
A1 A2(用户表A1) A3(0未采纳 1采纳) A4 A5
1 1 1 标题 内容
2 2 0 ....
3 2 1 ....
4 3 0 ....
要求统计结果
单位 发文总数 采纳数
珠海市 1 1
斗门区 2 1
金湾区 1 0
珠海市综合统计 4 2
....
求高手
[解决办法]
;with cte as( select x.a1 as 市 , n.a3 as 状态 from 新闻表 n inner join 用户表 u on n.a2=u.a1 inner join 市级表 x on x.a3=u.a2 ), cte2 as( select x.a1 as 县 , n.a3 as 状态 from 新闻表 n inner join 用户表 u on n.a2=u.a1 inner join 县级表 x on x.a4=u.a2),cte3 as(select 单位=a2, 发文总数=(select count(1) from cte where c.a1= 市), 采纳=(select count(1) from cte where c.a1= 市 and 状态=1), c.a1 a1 from 市级表 c union all select 单位=a2, 发文总数=(select count(1) from cte2 where c.a1= 县), 采纳=(select count(1) from cte2 where c.a1= 县 and 状态=1), c.a1 a1 from 县级表 c)select * from cte3 order by a1
[解决办法]
楼主可参考
[解决办法]
楼上的又让我学到了个新语法。。cte 表达式。。这个看起来蛮好用的。。哈哈。。感谢