【发布时间】:2013-02-21 21:08:58
【问题描述】:
我有 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 件事:
- “通过”请求的数量
- 通过的请求的请求 ID
- 未通过的请求的 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
提前致谢。
【问题讨论】:
标签: sql sql-server-2008 tsql count group-by