【问题标题】:A complex count rows with SQL Query使用 SQL 查询的复杂计数行
【发布时间】:2013-11-25 19:52:03
【问题描述】:

我正在尝试使用 SQL 查询组合 Access 数据库文件中的 COUNT,我需要您的帮助。

这是我的数据库列

[Name] [Project Type] [Project Phase] 

在每一行中,我都有员工的姓名、他(或她)正在从事的项目类型(类型 1 或类型 2)和项目阶段(完成/未完成/进行中)。

我尝试构建的查询的结果应该如下所示。

[Name] [Type1 Complete][Type1 Incomplete][Type1 InProgress] (...)
Jack          0                2                  3         (...)
John          3                0                  0         (...)

有没有办法在同一个查询中组合不同的 SQL COUNT 并按员工姓名对它们进行分组?

非常感谢。

【问题讨论】:

  • 如果您使用 MS Access,为什么要使用 sql-servermysql 标签???
  • 你说的很对,我的错

标签: sql ms-access


【解决方案1】:

当然。您需要使用 case 语句来派生您的 type1... 列。类似的东西

select [Name],
count (case when [Project Type] = 1 then <whatever you're counting> else null end) as [Type1 Complete]` 
from <your table> 
group by [NAME]

编辑:没有捕捉到 Access 标记。如果这确实是 Access,则不能使用 CASE。您需要使用 IIF。所以你最终会得到类似的东西

count (iif([Project Type]=1,<whatever you're counting>,null) as [Type1 Complete]

【讨论】:

  • 这太完美了!非常感谢!
  • 在 MS Access 中,您还可以使用 switch 语句代替 iif,例如 case
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
相关资源
最近更新 更多