-1

特定の Product_ID の売上の内訳を返すこの MySQL クエリがあります。

このクエリを拡張して、複数の Product_ID を含めたいと考えています。

私が持っているものは次のとおりです。これにより、1つのProduct_IDが得られます。

SELECT
o.Customer_ID, o.CompanyName, cg.Category, o.Order_ID,
SUM(old.LineTotal) as TOTAL,
SUM(old.qty) as PID,
COUNT(o.Order_ID) as OIDs

FROM Orders o
LEFT JOIN Order_LineDetails old ON old.Order_ID = o.Order_ID
LEFT JOIN CustomerDetails cd ON o.Customer_ID = cd.Customer_ID
LEFT JOIN _CustomerCategory cg ON cg.Category_ID = cd.Category_ID

WHERE o.IsPENDING = 0
AND o.OrderPlaceServerTime >= '2012-1-1'
AND o.OrderPlaceServerTime <= '2012-9-1'
AND o.IsVOID = 0
AND old.Product_ID = '56789' 

GROUP BY o.Customer_ID
ORDER BY TOTAL DESC
LIMIT 10

複数の Product_ID を実行し、それらの SUM も取得するために何かを追加しようとしています。

これは私が見ていたアイデアですが、obviosley これは機能しません。

(CASE WHEN old.Product_ID = '56789' 
        SUM(old.LineTotal) as TOTAL_56789,
        SUM(old.qty) as PID_56789)

これは、私が求めていた製品の数に基づいて繰り返されます.

うまくいけば、これは理にかなっています。

助言がありますか?

編集::

これが私が取り戻したいものの例です。

ここに画像の説明を入力

4

1 に答える 1

0

これを見てください

基本的にはピボット テーブルが必要ですが、mysql ではサポートされていません。クライアント アプリケーションでクエリを動的に記述することをある程度強制することができます。ストアド プロシージャの経験が豊富な場合は、自動バージョンを試すことができます。

于 2012-09-14T16:18:45.347 に答える