当前位置: 代码迷 >> Sql Server >> sql 多表统计查询结合一张新表
  详细解决方案

sql 多表统计查询结合一张新表

热度:58   发布时间:2016-04-24 10:02:13.0
sql 多表统计查询组合一张新表
先查询来了这个用户在个项目团队成员信息
select my.UserGUID,my.ProjGUID,myu.UserName,pp.ProjName ,COUNT(pp.OppSource) as DOppSource ,COUNT(pp.OppSource) as FOppSource  from myTeamUsers my left join myUser myu on my.UserGUID=myu.UserGUID left join p_Project pp on pp.ProjGUID=my.ProjGUID where TeamGUID in( select TeamGUID from myTeam where ProjGUID in( select pp.projectID from projectman pn left join p_projectman pp on pn.RprojectID=pp.RprojectID where EmpID='456'))
结果字段是(用户GUID,项目的GUID,用户名称,项目名称)
在查询要统计的结果是下面的SQL
统计来电总数
 select  COUNT(OppSource) as DOppSource  from 表 where  OppSource='来电'  and 用户ID='" + UserGUID + "' and  项目ID='" + ProjGUID + "'  and 时间=‘’
统计来访总数
 select  COUNT(OppSource) as DOppSource  from 表 where  OppSource='来访'  and 用户ID='" + UserGUID + "' and  项目ID='" + ProjGUID + "'  and 时间=‘’
怎么把这些查询结果组合一张新表(用户GUID,项目的GUID,用户名称,项目名称,来电总数,来访总数)这张表是一张临时表,这张临时表在查询它时,条件是(项目名称,来访、来点时间,用户)
------解决方案--------------------
列相同的就union all,不同的就left join
------解决方案--------------------
SELECT ID,COUNT(OppSource) as [来电总数] INTO #T1 from 表 
where  OppSource='来电'  and 用户ID='" + UserGUID + "' and  项目ID='" + ProjGUID + "'  and 时间=‘’

SELECT ID,COUNT(OppSource) as [来访总数] INTO #T2 from 表 
where  OppSource='来访'  and 用户ID='" + UserGUID + "' and  项目ID='" + ProjGUID + "'  and 时间=‘’

SELECT A.来电总数,B.来访总数 FROM #T1 A
LEFT JOIN #T2 B ON B.ID=A.ID
  相关解决方案