Reputation: 29
How can I retrieve a result if given multiple row data
The result base on performed column. The condition start with tserv_id ‘DISCHARGE’ and end with ‘ONPOWER’.
The conditions:
Code:
select
min(Case tserv_id when 'Discharge' then PERFORMED end) as tserv_discharge,
min(Case tserv_id when 'ONPOWER' then PERFORMED end) as tserv_onpower --How to retrieve data performed between disharge & first onpower?
from
ODS_REEFER
where
EQ_NBR = 'A1234';
select
min(Case tserv_id when 'ONPOWER' then PERFORMED end) as tserv_onpower,
max(Case tserv_id when 'ONPOWER' then PERFORMED end) as tserv_onpower --How to exclude performed first ONPOWER and how to read performed between second ONPOWER?
from
ODS_REEFER
where
EQ_NBR = 'A1234';
Upvotes: 0
Views: 60
Reputation: 1269563
Use aggregation:
select min(Case tserv_id when 'Discharge' then PERFORMED end) as tserv_discharge,
min(Case tserv_id when 'ONPOWER' then PERFORMED end) as tserv_onpower,
min(Case tserv_id when 'YARD2TRUCK' then PERFORMED end) as tserv_yard2truck,
min(Case tserv_id when 'FULL OUT' then PERFORMED end) as tserv_fullout,
min(Case tserv_id when 'FULL IN' then PERFORMED end) as tserv_fullin
from ODS_REEFER
where EQ_NBR = 'EGSU5014174';
Upvotes: 2