基準が満たされた場合、他の値との値を交換します

Michi :

SQLフィドル

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 OrderQuantityOrderQuantityOffer

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'

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=16657&siteId=1