2017-11-16 7 views
1

enter image description hereSQLクエリSUM構文(従来のASP事業)

私は3つのテーブルを持っています。

は私がするSQLクエリSUMテーブルREPORTSが、同じ店と同じ月を持つレコードのみからレコード(day_amount)を書きたいです。

私はそのような何かが必要です。

SELECT SUM(REPORTS.day_amount) AS GRAND_TOTAL 
FROM REPORTS 
WHERE MONTHS.month_id = REPORTS.month_id 
    AND STORES.store_id = REPORTS.store_id 

は正しいですか?私はGROUP BYを使用する必要がありますか?

+0

はい正しいです。グループ化する必要はありません。あなたの質問は大丈夫です。 –

+0

SQLステートメント内の他のテーブルを参照していません。あなたがそれらを使用したい場合は、ここでJOINステートメントを検索して実行する必要があります。 –

答えて

1

他のテーブルに参加していることを確認する必要があります(必要な場合)。

SELECT 
    MONTHS.month_id 
    ,STORES.store_id 
    ,SUM(REPORTS.day_amount) AS GRAND_TOTAL 
FROM REPORTS 
INNER JOIN MONTHS ON MONTHS.month_id = REPORTS.month_id 
INNER JOIN STORES ON STORES.store_id = REPORTS.store_id 
GROUP BY MONTHS.month_id, STORES.store_id 

実際には他のテーブルはまったく必要ないと思われますが、このようなことを試すことができます。

SELECT 
    REPORTS.month_id 
    ,REPORTS.store_id 
    ,SUM(REPORTS.day_amount) AS GRAND_TOTAL 
FROM REPORTS 
GROUP BY REPORTS.month_id, REPORTS.store_id 
+0

INNER JOINソリューションは完璧に動作します。ありがとうございました! – user2986570

関連する問題