2016-09-26 1 views
0

の配列に基づいてグループSQLクエリ内のデータはCLS、テーブルを参照すると、PHSあなたが日付を見ることができます下の方法のoccurance

Ops Day Date  St.Time End TimeCls Phs 
A 1 13.11.2015 4:45 6:30 PP RXXX  
A 1 13.11.2015 6:30 12:00 PP RXXX  
A 1 13.11.2015 12:00 18:00 PP RXXX  
A 3 15.11.2015 1:00 3:00 CN RXXX  
A 3 15.11.2015 3:00 8:00 CN RXXX  
A 3 15.11.2015 8:00 10:30 PP RXXX  
A 3 15.11.2015 10:30 12:00 PP RXXX  
A 4 16.11.2015 15:30 16:00 PP CXXX  
A 4 16.11.2015 16:00 18:30 PP CXXX  
A 4 16.11.2015 23:30 23:59 PN CXXX  
A 5 17.11.2015 0:00 0:15 PN CXXX  
A 5 17.11.2015 0:15 0:45 PP CXXX  
A 5 17.11.2015 0:45 1:15 PP CXXX  
A 5 17.11.2015 1:15 1:30 PP CXXX  
A 5 17.11.2015 1:30 2:00 PP CXXX  

は、今私は、クエリの出力は、この

ようになりたいです
  1. RXXX - のCl PP
  2. RXXX - のCl CN
  3. RXXX - のCl PP
  4. CXXX - のCl PP
  5. CXXX - のCl PN
  6. CXXX - PHS場合手段のCl PP

は、CLSは、それが1つのシーケンスにグループでなければならない日付を実行中で同じです。 PhsのClsが異なる場合は、別のシーケンスです。あるいはPhsとClsが前のものと同じであっても、それは別のClsやPhsの後に来ます。次のシーケンスにグループ化する必要があります。

日付は、基本的には、シーケンスを構成しているが、それはそれは

Ops Day Date Strt Time End timeCls Phs Seq 
A 1 13.11.2015 4:45 6:30 PP RXXX 1 
A 3 15.11.2015 1:00 3:00 CN RXXX 2 
A 3 15.11.2015 8:00 10:30 PP RXXX 3 
A 4 16.11.2015 15:30 16:00 PP CXXX 4 
A 4 16.11.2015 23:30 23:59 PN CXXX 5 
A 5 17.11.2015 0:15 0:45 PP CXXX 6 
+2

これは興味深いプロジェクトのように聞こえますが、質問がある場合はお知らせください。 – Shadow

+0

SQLの仕事ではありません。 – axiac

答えて

0

試してグループ化された後のいずれかでPHSとCLSやPHSとCLSの両方によって異なる

期待される結果である場合に別のシーケンスを作成する必要がありますですこの

SELECT 
    *, @Seq:[email protected] + 1 AS `Seq` 
FROM 
    (SELECT 
     `Ops`, `Day`, `Date`, `Start`, `End`, `Phs` 
    FROM 
     `yourtable` 
    GROUP BY `Day` , `Date` , `Cls` , `Phs`) tblresults, 
    (SELECT @Seq:=0) tblSeq; 
関連する問題