【发布时间】:2018-06-15 13:55:30
【问题描述】:
这个例子展示了什么是有效的,但是,除了 System Operator 在同一张表中还有六个其他职位,我还需要计算这个“Person”在其他职位上显示的次数.
一个记录的“人员”可以是系统操作员,而另一个记录的“人员”可以是工程师。所以我想要一个查询,它能够计算这个“人”在同一个查询中是工程师或系统操作员的次数。
当我为 Engineer 添加Count() 函数时,它只尝试返回该人既是 Engineer 又是 System Operator的值> 我正在计算这个人有多少次是明显的。
样本数据将包括以下内容:
表名称:TblEventPersonnel _______________
表格字段:开始日期、汽车、状态、测试经理、系统操作员、工程师一、工程师二、实习生一、实习生二
每个测试经理、系统操作员、工程师一、工程师二、实习生一、实习生二都是“人”,比如“鲍勃”
-
我需要一个查询,可以计算 Bob 是系统操作员、工程师一、工程师二、测试经理、实习生一、实习生二的次数。
最终,我需要生成一份报告或有一个包含人员(Bob、Joe、Gregg)或所有员工列表的组合框,当我选择一个人时,它会告诉我该人的次数在每个容量。下面的代码返回数字 4。
SELECT Count(tblEventPersonnel.[System Operator]) AS [CountOfSystem Operator]
FROM tblEventPersonnel
GROUP BY tblEventPersonnel.[System Operator]
HAVING (((tblEventPersonnel.[System Operator]) Like "Person"));
【问题讨论】:
-
只是一个注释,但没有任何通配符或模式的
LIKE与=完全一样,只是它需要更长的时间。 -
您是否有能力更改数据库架构,因为此表设计偏离了数据库规范化的最佳实践?否则,您的查询将变得复杂、存储效率低、可扩展性有限。
-
我确实有能力更改数据库架构。这是一个事件调度程序,我不知道如何组织这些表格。这是一个全新的数据库。我对任何想法持开放态度,但不确定最好的方法。
标签: sql sql-server ms-access