编写Microsoft Access SQL查询:判断产品各分部OrdNum是否一致
Access SQL 查询需求与解决方案
原数据表
| ProductID | Division | OrdNum |
|---|---|---|
| 1 | 011 | 123 |
| 1 | 705 | 123 |
| 1 | 660 | 123 |
| 2 | 011 | 511 |
| 2 | 705 | 412 |
| 2 | 660 | 216 |
查询需求
编写Microsoft Access SQL查询,按ProductID分组返回结果:
- 若同一
ProductID下所有Division对应的OrdNum完全相同,返回该OrdNum值 - 若同一
ProductID下存在不同的OrdNum,返回文本"Varies"
预期查询结果
| ProductID | OrdNum |
|---|---|
| 1 | 123 |
| 2 | Varies |
实现SQL语句
SELECT ProductID, IIF(COUNT(DISTINCT OrdNum) = 1, FIRST(OrdNum), "Varies") AS OrdNum FROM 你的表名 GROUP BY ProductID;
逻辑说明
- 通过
GROUP BY ProductID对每个产品进行分组 - 使用
COUNT(DISTINCT OrdNum)统计每组内不同OrdNum的数量:- 数量为1时,说明所有
OrdNum相同,用FIRST(OrdNum)取出该值 - 数量大于1时,返回指定文本
"Varies"
- 数量为1时,说明所有
内容的提问来源于stack exchange,提问作者Brandon
相关产品推荐
相关产品推荐

