sql 复杂查询
表A
numdw numbm date lx mark
1 2 2013/1 1 5
1 2 2013/2 1 5
1 3 2013/1 1 7
1 3 2013/2 1 7
3 2 2013/1 1 5
3 3 2013/2 1 7
5 2 2013/1 1 5
5 3 2013/2 1 7
7 2 2013/1 1 5
7 3 2013/2 1 7
9 2 2013/1 1 5
9 3 2013/2 1 7
表B
numbm bmjc
2 人事部门
3 后勤部门
4 技术部门
要实现的查询结果:
numdw year month every/total 人事部门 后勤部门 count countf
1 2013 2 1 1 1 2 1
1 2013 2 2 2 2 4 2
3 2013 2 1 1 1 2 1
3 2013 2 2 1 1 2 1
注:
every/total 1表示当月,2表示截止到当前月(一年度)
人事部门、后勤部门这些列为动态,根据查询条件确定,值为表A,mark=5的合计
count 为人事部门、后勤部门等列值的sum
countf 与count类似,但是mark=7
------解决方案--------------------我不知sql 2005有没有提供 pivot, 我的2008是有。
给你个提示,google一下 pivot 和 stuff 的用法,可以解决你的问题
------解决方案--------------------看看这个精华帖吧 ,动态行转列
http://bbs.csdn.net/topics/240002706