2016-04-19 8 views
2

現在、以下の結果セットを提供するクエリがあります。このクエリに追加して、すべての売上の一番下に合計を追加する必要があります。私はこれを行う方法がわかりません。前の結果の合計を取得するためにクエリに追加SQL

現在のクエリ:

SELECT 
    product, 
    COUNT(OrderNumber) AS CountOf 
FROM 
    orders 
WHERE 
    STATUS = 'booking' AND 
    Date(OrderDate) <= CURDATE() AND 
    Date(OrderDate) > DATE_SUB(CURDATE(),INTERVAL 30 DAY) 

GROUP BY 
    product 
ORDER BY CountOf DESC 

現在のResultSet:

product| count 
----------------------- 
pd1 | 3 
pd4 | 1 
pd2 | 1 

目的の結果セット=

product| count 
----------------------- 
pd1 | 3 
pd4 | 1 
pd2 | 1 
Total | 5 
+0

WITH ROLLUP ??? – Strawberry

+2

もし私がそれが何であるか分かっていたら、私はその質問をしましたか? –

+0

それは問題ですか?今あなたは知っている。 – Strawberry

答えて

1

たぶん、あなたは、UNION、および合計金額とSELECTを追加することができます。このような何か:

SELECT 
    product, 
    COUNT(OrderNumber) AS CountOf 
FROM 
    orders 
WHERE 
    STATUS = 'booking' AND 
    Date(OrderDate) <= CURDATE() AND 
    Date(OrderDate) > DATE_SUB(CURDATE(),INTERVAL 30 DAY) 
GROUP BY 
    product 
UNION 
SELECT 'Total', count(OrderNumber) AS CountOf 
FROM orders 
WHERE 
    STATUS = 'booking' AND 
    Date(OrderDate) <= CURDATE() AND 
    Date(OrderDate) > DATE_SUB(CURDATE(),INTERVAL 30 DAY) 
ORDER BY CountOf DESC; 
+0

誤った用法、組合、注文によりエラーが発生しましたか? –

+0

@ルイススミスありがとう、私は自分の投稿を編集しました。今度は合計が上部(代わりに)で注文されます。しかし、私はそれが答えとして大丈夫だと思います。 –

0

インナーが同じテーブルに参加してみてください、労働組合が原因の列の間違った量は、それぞれの側にそこにいるに動作しませんでした。

最初の選択には2つの設定された列があり、2番目の選択(結合後)は表示されませんでした。