2016-03-08 72 views
1

我想要一個將明智的行和明智的總數計數的查詢,我已經找到了計算列明智的計數,但沒有得到明智的行數的方法。oracle總行列明智嗎?

select nvl(to_char(R.LTHT_FLAG), 'total') as a, 
SUM(CASE WHEN p.STATUS_CODE='0' OR p.STATUS_CODE='1' THEN 1 ELSE 0 END) K, 
SUM(CASE WHEN p.STATUS_CODE='2' THEN 1 ELSE 0 END) W, 
SUM(CASE WHEN p.STATUS_CODE='4' THEN 1 ELSE 0 END) C, 
SUM(CASE WHEN p.STATUS_CODE='6' THEN 1 ELSE 0 END) R 
from WORKASSIGNMENT P,RESOURCES R WHERE P.EMP_CODE=R.EMP_CODE 
group by rollup (R.LTHT_FLAG); 

以下查詢的輸出是列明智計數,就像。

A   K W C  R Total 
DEVELOPMENT 1 18 397  0  ? 
HT   43 21 673  0  ? 
LT  83 14 7955 60  ? 
SLD  306 9 4621 24  ? 
---------------------------------------- 
total 433 62 13646 84  ? 

,但現在我想排明智計數這個輸出

請幫我拿到的總和逐行

回答

0

只需添加所有列得到總的每一行。

例如,

SQL> WITH sample_data AS(
    2 SELECT 'DEVELOPMENT' A, 1 k, 18 w, 397 c, 0 r FROM dual UNION ALL 
    3 SELECT 'HT' A, 43 k, 21 w, 673 c, 0 r FROM dual UNION ALL 
    4 SELECT 'LT' A, 83 k, 14 w, 7955 c, 60 r FROM dual UNION ALL 
    5 SELECT 'SLD' A, 306 k, 9 w, 4621 c, 24 r FROM dual 
    6 ) 
    7 -- end of sample_data mimicking real table 
    8 SELECT t.*, k+w+c+r total FROM sample_data t; 

A     K   W   C   R  TOTAL 
----------- ---------- ---------- ---------- ---------- ---------- 
DEVELOPMENT   1   18  397   0  416 
HT     43   21  673   0  737 
LT     83   14  7955   60  8112 
SLD    306   9  4621   24  4960 

SQL> 

上面,而不是sample_data,把當前的SQL作爲子查詢在FROM子句。

+0

作爲即時通訊新的這個概念,我不明白上面的代碼,請簡化一點點,不指定硬核值 – suhas

+0

在您的查詢中,您得到的列'k,w,c,r',make它作爲內部查詢並在外部查詢中添加這些列。 –

+0

非常感謝你:) – suhas