从总和中计算行数
Count number of rows from sum
我正在尝试根据 sum(rtime-time) 计算 >= 1 或 <= -1 的行数。
我的table
aono | aopos | artno | flogr | prgr | rtime | time | rdate |
7132 | 10 | 1234 | 20 | 20 | 2 | 1 | 2017-08-24 |
7132 | 10 | 1234 | 30 | 30 | 1,3 | 1 | 2017-08-24 |
7132 | 20 | 5678 | 20 | 29 | 1 | 3 | 2017-08-24 |
7132 | 20 | 5678 | 30 | 31 | 0,4 | 1,5 | 2017-08-24 |
7132 | 50 | 12 | 10 | 10 | 0,5 | 0,5 | 2017-08-24 |
我已经查询过了。
SELECT aono, aopos, artno, flogr, prgr, sum(rtime-time) AS Diff
FROM dbo.ao
WHERE (rdate Between '2017-08-01' AND '2017-08-31') AND (flogr = '20' OR flogr = '30')
GROUP BY aono, aopos, artno, flogr, prgr
HAVING SUM(rtime-time) >= '1' OR SUM(rtime-time) <= '-1'
即returns下面的结果
aono | aopos | artno | flogr | prgr | Diff
7132 | 10 | 1234 | 20 | 20 | 1
7132 | 20 | 5678 | 20 | 29 | -2
7132 | 20 | 5678 | 30 | 31 | -1,1
所以我需要帮助的是创建一个查询来计算基于上面查询的行数 (Diff)。在这个例子中正确的结果是 3.
提前致谢
/师大
你快到了,只需使用 COUNT
SELECT COUNT(*)
FROM
(
SELECT aono, aopos, artno, flogr, prgr, sum(rtime-time) AS Diff
FROM dbo.ao
WHERE (rdate Between '2017-08-01' AND '2017-08-31') AND (flogr = '20' OR flogr = '30')
GROUP BY aono, aopos, artno, flogr, prgr
HAVING SUM(rtime-time) >= '1' OR SUM(rtime-time) <= '-1')
) t
您需要运行 COUNT
您的查询
SELECT COUNT(*) FROM
(SELECT aono, aopos, artno, flogr, prgr, sum(rtime-time) AS Diff
FROM dbo.ao
WHERE (rdate Between '2017-08-01' AND '2017-08-31')
AND (flogr = '20' OR flogr = '30')
GROUP BY aono, aopos, artno, flogr, prgr
HAVING SUM(rtime-time) >= '1' OR SUM(rtime-time) <= '-1')
我正在尝试根据 sum(rtime-time) 计算 >= 1 或 <= -1 的行数。
我的table
aono | aopos | artno | flogr | prgr | rtime | time | rdate |
7132 | 10 | 1234 | 20 | 20 | 2 | 1 | 2017-08-24 |
7132 | 10 | 1234 | 30 | 30 | 1,3 | 1 | 2017-08-24 |
7132 | 20 | 5678 | 20 | 29 | 1 | 3 | 2017-08-24 |
7132 | 20 | 5678 | 30 | 31 | 0,4 | 1,5 | 2017-08-24 |
7132 | 50 | 12 | 10 | 10 | 0,5 | 0,5 | 2017-08-24 |
我已经查询过了。
SELECT aono, aopos, artno, flogr, prgr, sum(rtime-time) AS Diff
FROM dbo.ao
WHERE (rdate Between '2017-08-01' AND '2017-08-31') AND (flogr = '20' OR flogr = '30')
GROUP BY aono, aopos, artno, flogr, prgr
HAVING SUM(rtime-time) >= '1' OR SUM(rtime-time) <= '-1'
即returns下面的结果
aono | aopos | artno | flogr | prgr | Diff
7132 | 10 | 1234 | 20 | 20 | 1
7132 | 20 | 5678 | 20 | 29 | -2
7132 | 20 | 5678 | 30 | 31 | -1,1
所以我需要帮助的是创建一个查询来计算基于上面查询的行数 (Diff)。在这个例子中正确的结果是 3.
提前致谢
/师大
你快到了,只需使用 COUNT
SELECT COUNT(*)
FROM
(
SELECT aono, aopos, artno, flogr, prgr, sum(rtime-time) AS Diff
FROM dbo.ao
WHERE (rdate Between '2017-08-01' AND '2017-08-31') AND (flogr = '20' OR flogr = '30')
GROUP BY aono, aopos, artno, flogr, prgr
HAVING SUM(rtime-time) >= '1' OR SUM(rtime-time) <= '-1')
) t
您需要运行 COUNT
您的查询
SELECT COUNT(*) FROM
(SELECT aono, aopos, artno, flogr, prgr, sum(rtime-time) AS Diff
FROM dbo.ao
WHERE (rdate Between '2017-08-01' AND '2017-08-31')
AND (flogr = '20' OR flogr = '30')
GROUP BY aono, aopos, artno, flogr, prgr
HAVING SUM(rtime-time) >= '1' OR SUM(rtime-time) <= '-1')