2017-06-30 6 views
-3

クエリ1に関して、どのようにすべての列変数(VAR_ACTIVIDADE、VAR1、VAR2、VAR3、VAR4)の合計を取得できますか?SQLの合計

イメージには私が意図した結果があります。 IMG1

Query1を - >

SELECT ACTIVIDADE AS VAR_ACTIVIDADE, 
     COUNT(*) AS VAR_SUM, 
     SUM(TAT_DATAREGISTO <= 1) VAR1, 
     SUM(TAT_DATAREGISTO >= 2 AND TAT_DATAREGISTO <= 3) VAR2, 
     SUM(TAT_DATAREGISTO >= 4 AND TAT_DATAREGISTO <= 9) VAR3, 
     SUM(TAT_DATAREGISTO >= 10) VAR4 
FROM MAIN_TAB 
WHERE ESTADO_REP IN ('NULL', 'AGUARDA PEÇAS') 
    AND EXCLUIR_YN <> 'YES_DEL' 
GROUP BY ACTIVIDADE 
+0

参照:[私は非常に単純なSQLクエリと思われるものに対してMCVEを提供するのはなぜですか?](https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an -mcve-for-what-to-me-to-be-a-very-simple-sql-query) – Strawberry

答えて

0
SELECT SUM(VAR_ACTIVIDADE) VAR_ACTIVIDADE, 
SUM(VAR1) VAR1, 
SUM(VAR2) VAR2, 
SUM(VAR3) VAR3 , 
SUM(VAR4) VAR4 
from 
(
SELECT ACTIVIDADE AS VAR_ACTIVIDADE, 
COUNT(*) AS VAR_SUM, 
SUM(TAT_DATAREGISTO <= 1) VAR1, 
SUM(TAT_DATAREGISTO >= 2 AND TAT_DATAREGISTO <= 3) VAR2, 
SUM(TAT_DATAREGISTO >= 4 AND TAT_DATAREGISTO <= 9) VAR3, 
SUM(TAT_DATAREGISTO >= 10) VAR4 
FROM MAIN_TAB WHERE ESTADO_REP IN('NULL','AGUARDA PEÇAS') AND EXCLUIR_YN <> 'YES_DEL' GROUP BY ACTIVIDADE 
)Z 

問い合わせの上お試しください。

希望すると、これが役立ちます。

+0

私が望むように動作しません。ちょうどすべての列の合計を示し、私はすべての弁別された値と合計(行+列)を表示する必要があります。 TY –

0

ユースケース?

SELECT ACTIVIDADE AS VAR_ACTIVIDADE, 
COUNT(*) AS VAR_SUM, 
sum(when TAT_DATAREGISTO <= 1 then 1 else 0 end) VAR1, 
SUM(when TAT_DATAREGISTO between 2 and 3 then 1 else 0 end) VAR2, 
SUM(when TAT_DATAREGISTO between 4 and 9 then 1 else 0 end) VAR3, 
SUM(when TAT_DATAREGISTO >= 10 then 1 else 0 end) VAR4 
FROM MAIN_TAB 
WHERE ESTADO_REP IN('NULL','AGUARDA PEÇAS') 
AND EXCLUIR_YN <> 'YES_DEL' 
GROUP BY ACTIVIDADE 

この

は、適切な列内の各基準の値をカウントする(すなわち、1の合計)GROUP BYで

+0

"クエリ1に関して、どのようにすべての列変数(VAR_ACTIVIDADE、VAR1、VAR2、VAR3、VAR4)の合計を取得できますか?" –

1

使用WITH ROLLUP。それはあなたが望むものでなければなりません。

+0

簡単に解決しました。大変ありがとうございます。 –

+0

@IvoRubim回答を受け入れてください。とにかく、多くのグループの合計を求めたいときには問題があります。それは残念です、GROUPING SETSはありません(または私はそれに気づいていません)。 SQL Serverで。 – Rokuto