2017-01-03 18 views
-1

私は2つのテーブル、最初のテーブルがあります。これをシングルクエリで行うことは可能ですか?

Table1

そして、ここでは、第二のテーブルです:

Table2

所望の出力:

Jan | 1,000,000 
Feb | 0.000 
Mar | 0.000 

は単一で、それは可能であるがクエリ?

+0

を試す第二のテーブルを使用したくないので、私たちはDATE_FORMAT(t1.date, "%b")を使用して3つの文字で他の形式に名前を付ける変換します追加しましたそれが可能だ。 'LEFT JOIN'を使用 – Faytraneozter

+0

@Faytraneozter結合の必要はありません... –

+0

しかし、希望の出力?私はそれが可能だとは思わない。販売を見てください? –

答えて

0
SELECT 
    t2.`month`, 
    SUM(t1.sales) as sales 
FROM 
    table2 AS t2 
LEFT JOIN table1 AS t1 ON t2.`month` = DATE_FORMAT(t1.date, "%b") 
GROUP BY t2.`month` 
ORDER BY sales desc 

希望します。

しかし、これはあなたのテーブルのように少し変更を加える必要があります。月名でテーブル名に参加しているので、あなたの月名は3文字のみでなければなりません。日付は、それは場合はあなた

のために働くつもりですので、あなたがはいこの

SELECT DATE_FORMAT(t1.date, "%b") AS MONTH, SUM(t1.sales) FROM table1 AS t1 GROUP BY t1.date

+0

WOWは大変感謝しています!それは私のために働いたが、月が正しい位置にない理由は何ですか? – Newbie

+0

ええ、私はそれを整理しようとしている、私は一度やり遂げられる私のクエリを更新します –

+0

私の最後のコメントをしてくださいを試してみる必要はありません! – EhsanT

0
SELECT s.Month, SUM(f.Sales) 
FROM firstTable f, secondTable s 
GROUP BY MONTH (Date) 

が適切です。

+0

あなたの応答をありがとうが、それは私が望む出力を示していない。 Sales列内のすべての値を合計し、すべての月を繰り返します。 – Newbie

関連する問題