创建SQL视图,其中列是来自另一列的数据

时间:2015-05-24 11:40:42

标签: sql sql-server views

我正在使用SQL Server开发一个简单的犯罪记录管理系统。

我有以下表格:

Criminal (
          CriminalID,
          Gender ...)

Victim (
        VictimID,
        Gender ...)

Crime(
       CrimeID, 
       CriminalID,
       VictimID ...)

我有兴趣创建一个视图,为我们提供一个关于犯罪分子性别受害者性别的简单统计数据。

想要的输出示例:

Victim \ Criminal | Male | Female

Male              |  4   | 2

Female            |   8  | 5

仅根据受害者的性别或仅通过犯罪者的性别对犯罪数量进行分组并不难,但我该如何执行此任务?如何将犯罪分子的性别扩展到两个单独的列并执行所需的任务?

1 个答案:

答案 0 :(得分:1)

您需要一个条件总和:

select criminal.gender
  ,SUM(case when victim.gender = 'M' then 1 else 0 end) as "Male"
  ,SUM(case when victim.gender = 'F' then 1 else 0 end) as "Female"
from ...
group by criminal.gender

CASE返回1或0 ......