Only display values of latest available event type

后端 未结 4 1218
南笙
南笙 2020-12-22 06:55

SQL Fiddle:

CREATE TABLE Purchasing (
    Event_Type VARCHAR(255),
    Campaign VARCHAR(255),
    Quantity_Offer VARCHAR(255),
    Quantity_         


        
4条回答
  •  天命终不由人
    2020-12-22 07:38

    Use this for your query.

    this is based you first make your offer, then comes tghe order and at last comes the received, when 1 of them in that order is empty, then 1 prior must be the current state.

    SELECT
    Campaign,
    IF(QReceived IS NOT NULL, "Received",
       IF(QOrder IS NOT NULL, "Order",
          IF(QOffer IS NOT NULL, "Offer", NULL))) Event_Type,
    IF(QReceived IS NOT NULL, QReceived,
       IF(QOrder IS NOT NULL, QOrder,
          IF(QOffer IS NOT NULL, QOffer, NULL))) qty
          FROM
    (SELECT 
     Campaign,
    SUM(Quantity_Received) QReceived,
    
       SUM(Quantity_Order) QOrder,
       SUM(Quantity_Offer) QOffer
    
    FROm Purchasing
    GROUP BY Campaign) t1
    

    Which gives you foolowing result

    Campaign    Event_Type  qty
    C001        Received    310
    C002        Received    190
    C003        Order       450
    C004        Order       630
    C005        Offer       400
    C006        Offer       300
    

    http://www.sqlfiddle.com/#!9/2b9394/34

提交回复
热议问题