2016-10-04 10 views
1

で合計行を追加します。は、私はこのクエリで働いています合計数

SELECT PAS.NAME, 
(
    SELECT COUNT(*) FROM CUSOMERS WHERE C_ID = 90 
    AND CONTRACT_TYPE = 80 
    AND CONTRACT_DATE >= TO_DATE('20160101', 'YYYYMMDD') 
    AND CONTRACT_DATE <= TO_DATE('20161231', 'YYYYMMDD') 
    AND ORDER_ID = ORDERS.ID 
    AND STATUS = 1 
) AS ORDER_SHIPPED_COUNT FROM ORDERS INNER JOIN PAS ON ORDERS.ID = PAS.ID 
WHERE ORDERS.COUNTRY = 123 
AND ORDERS.PAYMENT = 30 
AND ORDERS.CONTRACT_TYPE = 80 
AND PAS.NAME LIKE 'HAS SHIPPED - %'; 

私が得る結果は以下の通りです:

NAME       ORDER_SHIPPER_COUNT 
HAS SHIPPED ON TIME   654 
HAS SHIPPED LATE    23 
HAS SHIPPED AND LOST   2 

そして、私はこの

ようになり、結果をしたいと思います
NAME       ORDER_SHIPPER_COUNT 
HAS SHIPPED ON TIME   654 
HAS SHIPPED LATE    23 
HAS SHIPPED AND LOST   2 
TOTAL      679 

ありがとうございました

答えて

1
with t as (
SELECT PAS.NAME, 
(
    SELECT COUNT(*) FROM CUSOMERS WHERE C_ID = 90 
    AND CONTRACT_TYPE = 80 
    AND CONTRACT_DATE >= TO_DATE('20160101', 'YYYYMMDD') 
    AND CONTRACT_DATE <= TO_DATE('20161231', 'YYYYMMDD') 
    AND ORDER_ID = ORDERS.ID 
    AND STATUS = 1 
) AS ORDER_SHIPPED_COUNT FROM ORDERS INNER JOIN PAS ON ORDERS.ID = PAS.ID 
WHERE ORDERS.COUNTRY = 123 
AND ORDERS.PAYMENT = 30 
AND ORDERS.CONTRACT_TYPE = 80 
AND PAS.NAME LIKE 'HAS SHIPPED - %') 
select * 
from t 
union all 
select 'TOTAL',sum(ORDER_SHIPPER_COUNT) from t; 

あなたのクエリを通じてユニークなレコードを取得する場合、あなたは、UNION ALLを使用しないでも、以下のクエリを使用することがあります。

with t as (
SELECT PAS.NAME, 
(
    SELECT COUNT(*) FROM CUSOMERS WHERE C_ID = 90 
    AND CONTRACT_TYPE = 80 
    AND CONTRACT_DATE >= TO_DATE('20160101', 'YYYYMMDD') 
    AND CONTRACT_DATE <= TO_DATE('20161231', 'YYYYMMDD') 
    AND ORDER_ID = ORDERS.ID 
    AND STATUS = 1 
) AS ORDER_SHIPPED_COUNT FROM ORDERS INNER JOIN PAS ON ORDERS.ID = PAS.ID 
WHERE ORDERS.COUNTRY = 123 
AND ORDERS.PAYMENT = 30 
AND ORDERS.CONTRACT_TYPE = 80 
AND PAS.NAME LIKE 'HAS SHIPPED - %') 
select nvl(name,'TOTAL') name, 
     sum(ORDER_SHIPPER_COUNT) ORDER_SHIPPER_COUNT 
from t 
group by rollup(name); 
+0

ありがとうございました!!それは動作します – Chrix1387

+0

それはまたあなたのために働く場合、2番目のクエリを確認できますか? – hemalp108

関連する問題