SQL 小白提问~弱弱求大神

collmeaaa 2015-03-20 05:51:35
有三个数据表
1.表名: Nature

Number Nature
1 Global
2 Local
3 Regional


2.表名 Type
Number Type
1 Closed
2 on hold
3 on Progress
4. not start


3.表名 Summary
ID Nature Type
1 Local on hold
2 Regional close
........


现在我想看每个Type和Nature的Summary有几个
那一共就是3*4=12个状态
那应该怎么统计呢, 如果没有就是0
结果类似于
GLOBAL CLOSED 1
LOCAL CLOSED 0
Regional closed 2
.......

...全文
126 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
还在加载中灬 2015-03-21
  • 打赏
  • 举报
回复
SELECT T1.Nature,T2.[Type],COUNT(T3.ID)
FROM Nature T1 CROSS JOIN [Type] T2
	LEFT JOIN Summary T3 ON T1.Nature=T3.Nature AND T2.[Type]=T3.[Type]
GROUP BY T1.Nature,T2.[Type]
oraclecaicai 2015-03-20
  • 打赏
  • 举报
回复

SELECT
       n.Nature
,      t.Type
,      COUNT(s.ID)
FROM      Nature  n
JOIN      Type    t ON 1 = 1
LEFT JOIN Summary s ON ( n.Nature = s.Nature AND t.Type = s.Type )
GROUP BY n.Nature, t.Type

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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