关于query1,我如何得到所有列变量的总和(VAR_ACTIVIDADE,VAR1,VAR2,VAR3,VAR4)?
在图像中我想要的结果。 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 :(得分:1)
在GROUP BY中使用WITH ROLLUP。它应该是你想要的。
答案 1 :(得分: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
尝试以上查询。
希望这会对你有所帮助。
答案 2 :(得分: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&#39;)