Michi :
CREATE TABLE Purchasing (
Event_Type VARCHAR(255),
Product VARCHAR(255),
Quantity VARCHAR(255)
);
INSERT INTO Purchasing
(Event_Type, Product, Quantity)
VALUES
("Offer", "Product_A", "300"),
("Offer", "Product_B", "200"),
("Offer", "Product_C", "500"),
("Offer", "Product_D", "400"),
("Offer", "Product_E", "600"),
("Order", "Product_B", "250"),
("Order", "Product_C", "450");
テーブルは異なるの購買状況が表示さproducts
使用しEvent_Type
Offer
たりしますOrder
。
あなたが見ることができるように製品のいくつかは持っているEvent_Type
Order
他は、一度EVENT_TYPEを持っているのに対しOffer
。
今、私は一度ことを達成したいProduct
持っているのが代わるのを。結果は次のようになります。Event_Type
Order
Quantity
Order
Quantity
Offer
Product Event_Type Quantity
Product_A Offer 300
Product_B Order 250
Prodcut_C Order 450
Product_D Offer 400
Product_E Offer 600
これまでのところ、私は唯一の基準が満たされた場合の値を交換することなく、データを照会することができています:
SELECT
Product,
Event_Type,
Quantity
FROM Purchasing
GROUP BY 1,2;
私は結果を得るために、SQLに変更する必要がありますか?
イチゴ :
SELECT x.product
, COALESCE(y.event_type,x.event_type) event_type
, COALESCE(y.quantity,x.quantity) quantity
FROM purchasing x
LEFT
JOIN purchasing y
ON y.product = x.product
AND y.event_type = 'order'
WHERE x.event_type = 'offer'