我有 2 个表,请求和响应
要求:
RequestId UserId InsertDate
1 1 5/4/2013
2 2 6/4/2012
. . .
. . .
回应:
Responseid Requestid(FK) ResponseCode
1 1 A
2 1 V
3 1 M
4 2 A
5 2 S
6 2 D
. . .
. . .
如果收到响应代码 A 和 D,则请求被视为“通过”(如我的示例中 id 为 2 的请求)。我想编写一个 sql 查询,它将返回 3 件事:
- “通过”请求的数量
- 通过的请求的 RequestID
- 未通过的请求的 RequestID
我写了一些东西,但我不喜欢它,我想还有更好的方法。我的查询是:
SELECT COUNT(*)
FROM
(
SELECT count(*) as c, req.RequestID
FROM Responses res inner join Requests req
on req.RequestID = res.RequestID
where
res.ResponseCode = 'A' or
res.ResponseCode = 'D'
group by req.RequestID
)cc
where c = 2
提前致谢。