Access SQL-我需要一个查询来根据几个条件计算字段数
我已经使用stackoverflow很多年了,通常我可以通过搜索找到我需要的东西,但是我很抱歉,我找不到这样的例子。我对这些东西非常陌生,但我喜欢在工作中帮助完成各种项目 我在保险索赔行业工作,我们有电子文件形式的保险索赔。主管对这些文件进行审查,简称为文件审查。我有一个Access db,用于跟踪工作中的所有文件审查 有时作为理赔主管,我们会对自己的员工进行文件审查,这意味着员工会向我汇报。其他时候,我会对向其他主管报告的同事进行文件审查 我的主表如下所示(包含许多其他列),每条记录都表示文件审阅:Access SQL-我需要一个查询来根据几个条件计算字段数,sql,ms-access,vba,Sql,Ms Access,Vba,我已经使用stackoverflow很多年了,通常我可以通过搜索找到我需要的东西,但是我很抱歉,我找不到这样的例子。我对这些东西非常陌生,但我喜欢在工作中帮助完成各种项目 我在保险索赔行业工作,我们有电子文件形式的保险索赔。主管对这些文件进行审查,简称为文件审查。我有一个Access db,用于跟踪工作中的所有文件审查 有时作为理赔主管,我们会对自己的员工进行文件审查,这意味着员工会向我汇报。其他时候,我会对向其他主管报告的同事进行文件审查 我的主表如下所示(包含许多其他列),每条记录都表示文件
ClaimNumber | Supervisor | Reviewer
----------- | -----------| ------------
1---------- | ---Bob-----| Bob
2---------- | ---Bob-----| Amy
3---------- | ---John----| Amy
4---------- | ---John----| Dean
5---------- | ---John----| John
6---------- | ---Dean----| Dean
7---------- | ---Dean----| Dean
8---------- | ---Dean----| Bob
9---------- | ---Kyle----| Bob
10--------- | ---Bob-----| Shawn
根据是否使用了联接,请注意,有时在“审阅者”列中未单独列出主管姓名。同样,有时审核人的姓名在“主管”列中没有列出一次
因此,我需要一个返回
Reviewer ------ TotalReviews ---- Self_Reviews ---- Cross_Reviews
评审员是所有唯一的评审员
TotalReviews是在“审阅者”列中列出审阅者姓名的次数计数
自我审核是指审核人姓名在“审核人”列中列出的次数,其中审核人姓名等于该特定记录的主管姓名
交叉审核是指审核人姓名在“审核人”列中列出的次数,其中审核人姓名与该特定记录的主管姓名不相等
Bob总共有3篇评论,1篇自我评论,2篇交叉评论
Amy总共有2篇评论,0篇自我评论,2篇交叉评论
Dean总共有3篇评论,2篇自我评论,1篇交叉评论
约翰有1个复习,1个自我,0个交叉
Shawn有1个评论,0个自我,1个交叉
我知道这对我来说很复杂,但我希望有人能帮助我,让事情变得更容易。我只是在使用Access,所以任何oracle或其他SQL语法都可能不起作用。这里有一个简单的技巧可以使用:对指示符函数求和 自我审查的指标功能将是
开关(Supervisor=Reviewer,1,True,0)
这将导致以下查询:
SELECT
T.Reviewer,
COUNT(*) AS TotalReviews,
SUM(Switch(T.Supervisor = T.Reviewer,1,True,0)) AS Self_Reviews,
SUM(Switch(T.Supervisor <> T.Reviewer,1,True,0)) AS Cross_Reviews
FROM TableName T
GROUP BY T.Reviewer
多纳先生。。。非常感谢!我得到一个语法错误,缺少运算符@试运行对不起,我忘了合上
总和的括号。编辑好了。哇,太完美了!我真诚地感谢您的帮助,您的解决方案比我尝试的其他方法简单得多!再次感谢,先生!
CASE WHEN Supervisor = Reviewer THEN 1 ELSE 0 END