2017-08-15 1 views
0

Wie kann ich abrufen ein Ergebnis, wenn mehrere Zeilendaten gegebenmehrere Zeilen einreihig

Show multiple row data

Das Ergebnis Basis auf geführt Spalte. Die Bedingung beginnt mit tserv_id 'DISCHARGE' und endet mit 'ONPOWER'.

Die Bedingungen:

  1. Entlastung OnPower (1 Reihe)
  2. Jede OnPower -------------- OnPower (1 Reihe zwischen dem letzten 1) durchgeführt)
  3. Alle zwischen den letzten 2) ONPOWER -------------- ONPOWER (1 Reihe)
  4. Alle zwischen den letzten 3) ONPOWER ------------ durchgeführt --- ONPOWEWR (1 Reihe)

Output

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'; 

Antwort

2

Verwendung 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'; 
+0

ja es kann eine Zeile sein. – Boom