[英]Access SQL Query / Expression to Compare Two Records in Same Table for SCRUM
几天来,我一直在用头撞墙。 我觉得这应该很简单,但我一直在我创建的所有查询中发现漏洞。
长话短说,通过一系列查询,我生成了一个类似于以下示例的数据集:
RequestID Status
45 Completed
87 Completed
87 Acknowledged
87 In Progress
87 Blocked
99 New
对我而言,下一步是在此数据集上运行查询,因此基于以下参数,每个RequestID
仅保留一个 SCRUM Status
。 因此,对于上面的示例,我希望我的结果显示:
RequestID Status
45 Completed
87 Blocked
99 New
这是我的 UML 逻辑树,我似乎无法弄清楚如何将其转换为 Access(请注意:我只是为未来的读者展示整个逻辑树。对于我的故障排除,案例 1、2、4 是唯一的我需要帮助将其转换为 Access SQL 查询的独特逻辑表达式)...
以下所有情况均基于每个RequestID
。
RequestID
任何记录具有Status
="Blocked"; 结果Status
为“已阻止”。RequestID
任何记录的Status
=“Awaiting Approval”,并且该特定RequestID
记录没有Status
为 =“Blocked”; 结果Status
为 =“等待批准”。RequestID
任何记录的Status
="In Progress" 并且该特定RequestID
记录没有Status
为 ="Blocked" 并且该特定RequestID
记录没有Status
为="Awaiting Approval"; 结果Status
为 =“进行中”。RequestID
任何记录的Status
=“已完成”,并且该特定请求RequestID
记录Status
为 =“已确认”......并且该特定请求RequestID
记录没有Status
为“已阻止”且没有该特定RequestID
记录Status
为 ="Awaiting Approval"; 结果Status
为 =“进行中”。RequestID
任何记录具有Status
="Acknowledged" 并且该特定RequestID
记录没有Status
为 ="Blocked" 并且该特定RequestID
记录没有Status
为 ="Awaiting Approval" 并且没有记录特定RequestID
的Status
为 ="Completed" 并且该特定RequestID
记录没有Status
为 ="In Progress"; 结果Status
为 =“已确认”。RequestID
任何记录具有Status
="New" 并且该特定RequestID
记录没有Status
为 ="Blocked" 并且该特定RequestID
记录没有Status
为 ="Awaiting Approval" 并且没有记录特定RequestID
的Status
为 ="Completed" 并且该特定RequestID
记录没有Status
为 ="In Progress" 并且该特定RequestID
记录没有Status
为="Acknowledged"; 结果Status
为 =“新”。由于我正在比较表中的多行,因此可能需要self-join
? 或者也许可以使用 IIF 语句为结果Status
字段完成? 我不知道。 我所做的每一次尝试似乎都失败了,所以在这一点上,我真的很喜欢有人对我如何在 Access 中做到这一点的见解!
任何帮助是极大的赞赏。
SELECT RequestID,
Min(IIf([status]="Blocked",Yes)) AS B,
Min(IIf([status]="Awaiting approval",Yes)) AS W,
Min(IIf([status]="In Progress",Yes)) AS IP,
Min(IIf([status]="Completed",Yes)) AS C,
Min(IIf([status]="acknowledged",Yes)) AS Ack,
Min(IIf([status]="New",Yes)) AS N,
Switch([B],"Blocked",[W],"Awaiting Aproval",[IP],"In Progress",[C] And [Ack],"In Progress",[Ack],"Acknowledged",[N],"New") AS Result
FROM Status
GROUP BY RequestID;
这与上面的问题无关 - 它使已完成的结果为空白,但未确认为空白 - 但是一旦您更好地定义规则,您应该能够修改逻辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.