The issue I am having has to do with not being able to show different OrderDate for the same Unit
Unit OrderDate ShipDate ReceiptDate
Robot 20160101 20160102 20160103
Robot 20160102 20160103 20160104
Robot 20160103 20160104 20160105
What is happening instead is that it is showing the same OrderDate for all three records.
Unit OrderDate ShipDate ReceiptDate
Robot 20160101 20160102 20160103
Robot 20160101 20160103 20160104
Robot 20160101 20160104 20160105
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