当前位置: 代码迷 >> Sql Server >> 求条sql语句解决方案
  详细解决方案

求条sql语句解决方案

热度:96   发布时间:2016-04-24 19:07:39.0
求条sql语句
数据库中内容

key       父部门            子部门       培训编号         签到      工号
id      deptFather       deptChild        tNumber          signed      workid
1         技术              维护            AA             是        dsadad
2         技术              维护            AA             否         gdfgd  
3         技术              维护            AA             是          gdfg  
4         技术              维护            AA             否          jghj    
5         技术              维护            AA             是           terter    
6         生产              生产2            BB             是            dsada    
7         生产              生产1            BB             是          fas    

分组依据应该是  tNumber吧
要的结果是 
技术   应到 5人  实到3人
生产   应到2人   实到2人


------解决方案--------------------
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-10-28 17:02:23
-- Version:
--      Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
-- Dec 28 2012 20:23:12 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([id] int,[deptFather] varchar(4),[deptChild] varchar(5),[tNumber] varchar(2),[signed] varchar(2),[workid] varchar(6))
insert [huang]
select 1,'技术','维护','AA','是','dsadad' union all
select 2,'技术','维护','AA','否','gdfgd' union all
select 3,'技术','维护','AA','是','gdfg' union all
select 4,'技术','维护','AA','否','jghj' union all
select 5,'技术','维护','AA','是','terter' union all
select 6,'生产','生产2','BB','是','dsada' union all
select 7,'生产','生产1','BB','是','fas'
--------------开始查询--------------------------

select [deptFather] ,COUNT(1) [应到],sum(CASE WHEN signed='是' THEN 1 ELSE 0 END ) [实到]
from [huang]
GROUP BY [deptFather]
----------------结果----------------------------
/* 
deptFather 应到          实到
---------- ----------- -----------
技术         5           3
生产         2           2
*/

------解决方案--------------------

create table test (id int,deptFather nvarchar(10),deptChild nvarchar(10),
tNumber nvarchar(10),signed nvarchar(10),workid nvarchar(10))
insert into test values (1,'技术','维护','AA','是','dsadad')
  相关解决方案