Orders (注文ごとに 1 つのレコード) を含むテーブルと、OrderDetails (注文の製品ごとに 1 つのレコード) を含むテーブルがあります。SELECT ステートメントで、ProductID で名前が付けられた列に各製品の数量を返すようにしたいと考えています。このように、ProductID ごとに明示的にクエリを記述するわけではありませんが、クエリが OrderDetails テーブルで見つかった ProductID に適応するようにします。
結果は次のようになります。
OrderID TrackingNr ProductID1 ProductID2 ProductID3
1 1Zetc 6 0 2
2 1Zetc2 0 1 1
現在、次のものがあります。
SELECT Orders.OrderID AS OrderID,
TrackingNumbers.TrackingNumber AS TrackingNumber,
(SELECT Quantity FROM OrderDetails WHERE Orders.OrderID = OrderDetails.OrderID AND ProductCode = 'FPIA0009') AS FPIA0009,
(SELECT Quantity FROM OrderDetails WHERE Orders.OrderID = OrderDetails.OrderID AND ProductCode = 'FPIA0030') AS FPIA0030,
((SELECT Quantity FROM OrderDetails WHERE Orders.OrderID = OrderDetails.OrderID AND ProductCode = 'FPIA0060') +
(SELECT Quantity FROM OrderDetails WHERE Orders.OrderID = OrderDetails.OrderID AND ProductCode = 'FPIA0060xP')) AS FPIA0060,
(SELECT Quantity FROM OrderDetails WHERE Orders.OrderID = OrderDetails.OrderID AND ProductCode = 'FPIA0120') AS FPIA0120
FROM Orders, TrackingNumbers WHERE Orders.OrderID = TrackingNumbers.OrderID
ORDER BY OrderID, ShipDate
ご覧のとおり、上記では特定の ProductID ごとに数量を明示的に要求していますが、他にも多くの数量があり、単純化したいと考えています。
ご覧のとおり、2 つの異なる製品の数量を合計しようとしましたが、これらは同じ在庫から抽出されたものでしたが、何らかの理由で結果が常に空になっています。
あなたの助けは大歓迎です!