間違っていることがたくさんあるので、どこから始めればよいのかわかりません。
CASEの2つの形式を混同しています 表現。 1つの形式は次のとおりです:
CASE <expression>
WHEN <value> THEN <result>
WHEN <value> THEN <result>
...
END
もう1つは:
CASE
WHEN <condition> THEN <result>
WHEN <condition> THEN <result>
...
END
SELECTを使用しようとしています 値としてクエリを実行しますが、FROMがありません 句であり、値として使用するには、クエリを括弧で囲む必要があります。これを同じテーブルからクエリする必要があると思われます。その場合、サブクエリを実行するのではなく、メインクエリで集計関数を使用する必要があります。
CASE 式はSELECTの一部である必要があります FROMの後ではなくリスト 条項。
ケースごとに出力に個別の列を作成する場合は、1つのCASEに含めることはできません。 表現。
すべてのテーブル名と列名は二重引用符で囲みます。MySQLはバッククォートを使用して名前を引用します。
SELECT DISTINCTは必要ありません GROUP BYを使用する場合 。
SELECTでエイリアスを参照することはできません GROUP BYを除いて、同じクエリにリストします 、ORDER BY 、およびHAVING 。
次のようになります:
SELECT MONTH(Facturation) AS month, LRU, Client,
AVG(CASE WHEN MONTH(Factuation) = 1 AND Facturation BETWEEN 1 AND 6
THEN Montant_fac_eur END) AS c1,
AVG(CASE WHEN MONTH(Factuation) = 2 AND Facturation BETWEEN 2 AND 7
THEN Montant_fac_eur END) AS c2,
AVG(CASE WHEN MONTH(Factuation) = 3 AND Facturation BETWEEN 3 AND 8
THEN Montant_fac_eur END) AS c3,
AVG(CASE WHEN MONTH(Factuation) = 4 AND Facturation BETWEEN 4 AND 9
THEN Montant_fac_eur END) AS c4,
...
FROM foundry_sync.data
GROUP BY `LRU`, `Client`, `Facturation`
ORDER BY Client, month