SQL分组统计问题

qqyatou 2015-04-19 10:27:27

这个是资源类型

这个是上传的资源数据,分学科和类型

现在想要统计出下面这种结果:


我现在写的sql

SELECT SubjectID,ResourceID,SubjectName,ResourceName, COUNT(B.TID) COUNTS
FROM t_resourcefile B
WHERE RecordTime>='2015-02-08 00:00:0' and RecordTime<='2015-03-20 23:59:59'
GROUP BY SubjectID, ResourceID
ORDER BY SubjectID



应该出来后是每个学科下的每个类型的数据都要统计出来,即使没有数据也要显示为0
查处数据是横的或者竖的都行,

数据库用的mysql,好多函数用不了
...全文
146 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqyatou 2015-04-20
  • 打赏
  • 举报
回复
引用 4 楼 ky_min 的回复:
--MYSQL的动态处理我还得查一下,先处理成竖的吧
SELECT T3.TID,T3.TName,T3.SubjectID,T3.SubjectName
	,COUNT(T4.TID)COUNTS
FROM(
		SELECT T1.TID,T1.TName,T2.SubjectID,T2.SubjectName
		FROM 资源类型 T1,
			(SELECT SubjectID,SubjectName FROM t_resourcefile GROUP BY SubjectID,SubjectName)T2
	)T3 LEFT JOIN t_resourcefile T4 ON T3.TID=T4.ResourceID AND T3.SubjectID=T4.SubjectID
GROUP BY T3.TID,T3.TName,T3.SubjectID,T3.SubjectName
没有数据会显示0
好了,谢谢哈
还在加载中灬 2015-04-20
  • 打赏
  • 举报
回复
--MYSQL的动态处理我还得查一下,先处理成竖的吧
SELECT T3.TID,T3.TName,T3.SubjectID,T3.SubjectName
	,COUNT(T4.TID)COUNTS
FROM(
		SELECT T1.TID,T1.TName,T2.SubjectID,T2.SubjectName
		FROM 资源类型 T1,
			(SELECT SubjectID,SubjectName FROM t_resourcefile GROUP BY SubjectID,SubjectName)T2
	)T3 LEFT JOIN t_resourcefile T4 ON T3.TID=T4.ResourceID AND T3.SubjectID=T4.SubjectID
GROUP BY T3.TID,T3.TName,T3.SubjectID,T3.SubjectName
没有数据会显示0
qqyatou 2015-04-20
  • 打赏
  • 举报
回复
引用 2 楼 ky_min 的回复:
第一个表和第二个表,是根据哪个字段关联的呢
第一个表的TID和第二个表的ResourceID
还在加载中灬 2015-04-20
  • 打赏
  • 举报
回复
第一个表和第二个表,是根据哪个字段关联的呢
hery2002 2015-04-19
  • 打赏
  • 举报
回复
使用MAX 和case when? MySQL 真心不熟悉,只有自己翻语法书了。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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