我有两个叫做REQUESTS和OPENISSUES的大表。 一个保存请求信息,另一个保存每个请求的问题数。
在REQUESTS表中有一个状态列,用于跟踪请求状态。
我正在寻找一个查询,该查询计算OPENISSUES表中所有未将状态设置为&#34的请求的所有记录;已关闭"
我的查询计算所有记录,但不会将结果返回到一行。 我得到了每个请求的结果。有人有想法吗?
以下是我的问题:
SELECT
(SELECT COUNT(ID) FROM openissues WHERE openissues.requestID=requests.ID) AS TotalIssues
FROM requests
WHERE requests.status<>'Closed'
此时欢迎任何想法。 否则我将开始计算ASP中的记录。
此致 料
答案 0 :(得分:0)
这肯定是你想要的。
SELECT count(*)
FROM openissues op, requests rq
WHERE op.requestID = rq.ID and rq.status <> 'Closed'
或
SELECT count(*)
FROM openissues op INNER JOIN requests rq ON op.requestID = rq.ID
WHERE rq.status <> 'Closed'
答案 1 :(得分:0)
我认为你需要的只是一个加入:
SELECT count(*) as TotalIssues
FROM openissues o
INNER JOIN requests r ON ( o.requestID = r.ID )
WHERE r.status != 'Closed'
答案 2 :(得分:0)
SELECT count(DISTINCT openissues.requestID)
FROM openissues
INNER JOIN requests ON openissues.requestID = requests.ID
WHERE rq.status <> 'Closed'
或
SELECT count(*)
FROM openissues
INNER JOIN requests ON openissues.requestID = requests.ID
WHERE rq.status <> 'Closed'
GROUP BY openissues.requestID
这些查询将计算请求表中至少有一条记录未处于“已关闭”状态的requestID数。
@ypercube注意事项
它不会计算两次相同的requestID(就像碗贩一样)。