2017-07-14 12 views
2

私はffを持っています。データ..ピボットテーブルを使用したMysqlクエリ

 
    empID Login Date TimeIN TimeOut  
    1001  01/01/2017 08:00  17:00 
    1001  01/02/2017 07:59  17:02 
    1001  01/03/2017 07:54  17:05 
    1001  01/04/2017 08:00  17:04 
    1001  01/05/2017 07:56  17:03 
    1001  01/06/2017 07:52  17:01  
    1001  01/07/2017 07:53  17:02 

私は出力がこのような何かになりたい...

 
    EmpID mon   tue   wed   thu   fri 
    1001 08:00-17:00 7:59-17:02 07:54-17:05 08:00-17:04 07:56-17:03 

私は

 
    select cEmpID,dDate, 
    (case DAYOFWEEK(dDate) WHEN 1 then CONCAT(cIn1,' - ',cOut2) else '' End) as 'Mon', 
    (case DAYOFWEEK(dDate) WHEN 2 then CONCAT(cIn1,' - ',cOut2) else '' End) as 'Tue', 
    (case DAYOFWEEK(dDate) WHEN 3 then CONCAT(cIn1,' - ',cOut2) else '' End) as 'Wed', 
    (case DAYOFWEEK(dDate) WHEN 4 then CONCAT(cIn1,' - ',cOut2) else '' End) as 'Thu', 
    (case DAYOFWEEK(dDate) WHEN 5 then CONCAT(cIn1,' - ',cOut2) else '' End) as 'Fri', 
    (case DAYOFWEEK(dDate) WHEN 6 then CONCAT(cIn1,' - ',cOut2) else '' End) as 'Sat', 
    (case DAYOFWEEK(dDate) WHEN 7 then CONCAT(cIn1,' - ',cOut2) else '' End) as 'Sun' 
    from tblattenddetail 
    Where cPeriodID='201702' 
    GROUP BY cEmpID 

..このクエリを使用してみてください持っている。しかし、それは動作しません。..

+0

は、なぜあなたは、選択リストにdDateを引いていますか? –

+0

この回答を確認するには、 'https:// stackoverflow.com/questions/42408465/mysql/42409047#42409047' –

+0

@chiragsataparaへの変換が必要な列このクエリは大文字小文字を使用して解決できますのみ。ここでピボットを使用する必要はありません。 –

答えて

0

下記のクエリを試してください -

SELECT empID, 
     MAX(case DAYOFWEEK(`Login Date`) WHEN 1 then CONCAT(TimeIN,' - ',TimeOut) else '' End) as 'Mon', 
     MAX(case DAYOFWEEK(`Login Date`) WHEN 2 then CONCAT(TimeIN,' - ',TimeOut) else '' End) as 'Tue', 
     MAX(case DAYOFWEEK(`Login Date`) WHEN 3 then CONCAT(TimeIN,' - ',TimeOut) else '' End) as 'Wed', 
     MAX(case DAYOFWEEK(`Login Date`) WHEN 4 then CONCAT(TimeIN,' - ',TimeOut) else '' End) as 'Thu', 
     MAX(case DAYOFWEEK(`Login Date`) WHEN 5 then CONCAT(TimeIN,' - ',TimeOut) else '' End) as 'Fri', 
     MAX(case DAYOFWEEK(`Login Date`) WHEN 6 then CONCAT(TimeIN,' - ',TimeOut) else '' End) as 'Sat', 
     MAX(case DAYOFWEEK(`Login Date`) WHEN 7 then CONCAT(TimeIN,' - ',TimeOut) else '' End) as 'Sun' 
FROM login 
GROUP BY empID 

ここではあなたの参照のためのフィドルです - あなたは結果にそれをしたくないときhttp://www.sqlfiddle.com/#!9/437e5/5

+0

ありがとうございました。これは私の問題を解決しました...素晴らしいアイデア... – Elmer

関連する問題