DB2SQL分区

DB2SQL分区,sql,db2,Sql,Db2,我遇到的问题是不能为同一个单元显示不同的订单日期 Unit OrderDate ShipDate ReceiptDate Robot 20160101 20160102 20160103 Robot 20160102 20160103 20160104 Robot 20160103 20160104 20160105 相反,它显示的是所有三条记录的相同订单日期 单位订单日期发货日期收货日期 机器人2016010

我遇到的问题是不能为同一个单元显示不同的订单日期

Unit    OrderDate     ShipDate   ReceiptDate  
Robot 20160101       20160102   20160103   
Robot 20160102       20160103   20160104 
Robot 20160103       20160104   20160105   
相反,它显示的是所有三条记录的相同订单日期

单位订单日期发货日期收货日期 机器人20160101 20160102 20160103 机器人20160101 20160103 20160104 机器人20160101 20160104 20160105
您显示的输出似乎与查询不匹配。如果按该列分组,如何得到salesorder.unitid的三个相同值?我猜您实际上希望按salesorder.eventdate分组
SELECT salesorder.unitid "Unit",
       max(salesorder.eventdate) "OrderDate",
       max(salesdelivery.eventdate) "ShipDate",
       max(salesreceipt.eventdate) "ReceiptDate"
FROM (
  SELECT eventdate,
         unitid
  FROM sales
  WHERE event = 'ORDER'
    AND eventdate > '2015-12-31'
    AND eventdate < '2016-02-01'
) salesorder
  LEFT OUTER JOIN (
    SELECT eventdate,
           unitid
    FROM sales
    WHERE event = 'SHIP'
      AND eventdate > '2015-12-31'
      AND eventdate < '2016-02-01'
  ) salesdelivery ON salesorder.unitid = salesdelivery.unitid
  LEFT OUTER JOIN (
    SELECT eventdate,
           unitid
    FROM sales
    WHERE event = 'RECEIPT'
      AND eventdate > '2015-12-31'
      AND eventdate < '2016-02-01'
  ) salesreceipt ON salesdelivery.unitid = salesreceipt.unitid
WHERE salesdelivery.eventdate > salesorder.eventdate
  AND salesreceipt.eventdate > salesdelivery.eventdate
  AND salesorder.unitid = '001'
GROUP BY salesorder.unitid