首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求一sql语句,按不同类型查询各部门的人数,该如何处理

2012-05-27 
求一sql语句,按不同类型查询各部门的人数上面我所说的,按岗位类型分类,查询各个部门分别有哪几种岗位类型

求一sql语句,按不同类型查询各部门的人数



上面我所说的,按岗位类型分类,查询各个部门分别有哪几种岗位类型的人员以及所属这种岗位类型人员的数量。
查询结果如下:
部门名称---管理人员(此类型包含后面的几个子项)---行政管理---经营预算---工程技术人员---技师。。
A部门------9(2+4+3)----------------------------------4----------3----------7(2+5)---------5
B部门------7(2+3+2)----------------------------------3----------2----------5(3+2)---------2  
C部门------11(3+5+3)---------------------------------5----------3----------8(3+5)---------5


工程技术人员还包含好几种类型.因为岗位类型以及子类是可以增加删除的.所以查询的时候是不可能按几种因定的类型来查询

http://topic.csdn.net/u/20120518/18/d39ac644-83ad-43ce-a947-6c2d99e22eae.html?seed=316685740&r=78613674
之前这个贴子发了,沉了...还有40分呢

[解决办法]
连续聚合
[解决办法]
LZ这个是个bom类似的问题。参考下面的方法。

SQL code
CREATE TABLE BOM(阀门ID VARCHAR(10),零件ID VARCHAR(10),单位用量 INT)GOINSERT BOM SELECT 'a','a1', 1  UNION ALL SELECT 'a1','a11', 1 UNION ALL SELECT 'a' ,'a2', 1 UNION ALL SELECT 'a2', 'a22' ,1 UNION ALL SELECT 'b', 'b1' ,1 UNION ALL SELECT 'b1', 'b11' ,1 UNION ALL SELECT 'b', 'b2', 1 UNION ALL SELECT 'b2', 'b22' ,1;GO ;WITH cte AS(    SELECT * ,path=CAST(阀门ID+'->'+零件ID AS VARCHAR(8000)),lev=1 FROM BOM WHERE patindex('%[1-9]%',阀门ID)=0    UNION ALL    SELECT B.*,cast(c.path+'->'+B.零件ID AS VARCHAR(8000)),LEV+1 FROM CTE C JOIN BOM B ON C.零件ID=B.阀门ID)SELECT LEFT(c.path,charindex('-',c.path)-1)  阀门ID,零件ID,单位用量 FROM CTE c WHERE NOT EXISTS (SELECT * FROM cte WHERE  LEFT(path,charindex('-',path)-1)=LEFT(c.path,charindex('-',c.path)-1) AND LEV>c.lev)ORDER BY 阀门ID,零件ID/*阀门ID 零件ID 单位用量------ ------ --------a      a11           1a      a22           1b      b11           1b      b22           1*/DROP TABLE bom 

热点排行