【发布时间】:2018-02-03 17:44:56
【问题描述】:
我正在使用 Microsoft SQL 服务器。 下面的查询会生成一个类似这样的表:
idnumber | checkID | taskID | status
1001 | 9000 | 410 | Approved
1001 | 9001 | 410 | Approved
1001 | 9002 | 410 | Approved
1201 | 9100 | 430 | Approved
1201 | 9101 | 430 | Approved
...我需要的是只返回其中一个 idnumber 的查询,而不管其他数据如何(这样只有一个 idnumber 被“批准”,而其他的没有)。
我想要的结果类似于:
身份证号 |检查ID |任务ID |状态
1001 | 9000 | 410 |已批准
1201 | 9100 | 430 |已批准
到目前为止我的查询:
SELECT DISTINCT viewTable.idnumber
, viewTable.checkID
, viewTable.taskID
, 'Approved' AS status
FROM viewTable
INNER JOIN anotherTable
ON viewTable.idnumber = anotherTable.idnumber
INNER JOIN someOtherTable
ON someOtherTable.idnumber = anotherTable.idnumber
WHERE anotherTable.CODE = 'DesiredCode'
关于这个问题的更多信息: 我在 anotherTable.CODE 中查找了一个特定值,并且只想“批准”该特定代码。上面的查询批准任何返回 idnumber 的内容。
【问题讨论】:
-
它确实返回了不同的记录。不要包括使其不明显的其他列。和/或根据需要使用连接或子查询分别获取这些列。
-
您使用的是哪个数据库?
-
只需从您的选择语句中删除 checkid 和 taskid !
-
您可以使用 top 或 limit 取决于您正在使用的数据库
-
我正在使用 Microsoft SQL 服务器。
标签: sql sql-server