Sql Server 2008 行列转换 不会用case when?
在AdventureWorks数据库中统计 Department 表中各个部门男女各有多少人?
涉及到的表有:
AdventureWorks.HumanResources.Employee
AdventureWorks.HumanResources.Department
AdventureWorks.HumanResources.EmployeeDepartmentHistory
我写的sql(有问题)
select b.Name, case c.Gender when 'M' then COUNT(c.EmployeeID) end as m,
case c.Gender when 'F' then COUNT(c.EmployeeID) end as f
from HumanResources.EmployeeDepartmentHistory a inner join HumanResources.Department b
on b.DepartmentID = a.DepartmentID
inner join HumanResources.Employee c
on a.EmployeeID = c.EmployeeID
group by b.DepartmentID,b.Name,c.Gender
得到的结果是

显然不对。
我想得到的结果如下:

涉及到的表有:
AdventureWorks.HumanResources.Employee
AdventureWorks.HumanResources.Department
AdventureWorks.HumanResources.EmployeeDepartmentHistory
我写的sql(有问题)
select b.Name, case c.Gender when 'M' then COUNT(c.EmployeeID) end as m,
case c.Gender when 'F' then COUNT(c.EmployeeID) end as f
from HumanResources.EmployeeDepartmentHistory a inner join HumanResources.Department b
on b.DepartmentID = a.DepartmentID
inner join HumanResources.Employee c
on a.EmployeeID = c.EmployeeID
group by b.DepartmentID,b.Name,c.Gender
得到的结果是

显然不对。
我想得到的结果如下:

...全文
相关推荐
sql server 2008 课后实验答案
SQL Server 2008 实验答案本资源提供了 SQL Server 2008 的实验答案,涵盖了 4-7 章,详细介绍了 SQL 语句的使用和应用。
SQL Server 2008乱码问题
在SQL Server 2008中遇到中文乱码问题,通常是由于字符编码设置不正确或者数据库与应用程序之间的编码不匹配导致的。
怎样用SQL Server 2008 SQL语句将Excel数据...
### 如何使用SQL Server 2008将Excel数据导入数据库#### 一、通过SQL语句导入数据在SQL Server 2008中,可以通过编写SQL语句来实现Excel数据的导入。
CASE的用法 (Transact-SQL)
#### 三、使用场景CASE 表达式可以应用于 SQL Server 和 Windows Azure SQL Database 中的多种上下文,包括但不限于:- **SELECT 语句**: 在 SELECT
sql server 2008 上机实验操作
"SQL Server 2008 实际操作指南——数据库与表管理"本文将详细介绍如何在SQL Server 2008中进行数据库和表的相关操作,包括创建、查看、修改、删除以及数据的管理。以下是各


疑难问题
