2012-02-20 33 views
-1

日安傢伙,打印兩行一列[高級SQL]

我堅持在這裏,我迫切需要幫助這裏...

很顯然,我想兩行合併成一列。

我當前的SQL丹表的設計是:

select * from timetable order by name, id 

,給了我這樣的:

Here

有誰知道如何設計我的查詢,這樣我會得到這樣一個結果這個:

Here

Fyi,我正在使用Microsoft SQL Server 2005.

在此先感謝傢伙! :)

對不起,我無法在這裏上傳圖片。

SORRY ...我發佈了相同的圖像!對不起!

我已經上傳了新的..請看看..

+1

我不能看到您發佈 – 2012-02-20 09:59:45

+0

可以檢查鏈接的圖像的單個變化?我認爲是相同的圖像 – 2012-02-20 10:00:12

+0

您的問題鏈接兩次到相同的圖片。 – Black 2012-02-20 10:00:54

回答

1
SELECT COALESCE(i.Name, o.Name) [Name], 
     i.Time [TimeIN], 
     MIN(o.Time) [TimeOUT] 
FROM ( SELECT * 
      FROM Timetable 
      WHERE Status = 'IN' 
     ) i 
     FULL OUTER JOIN 
     ( SELECT * 
      FROM Timetable 
      WHERE Status = 'OUT' 
     ) o 
      ON o.Name = i.Name 
      AND o.Time > i.Time 
GROUP BY COALESCE(i.Name, o.Name), i.Time 
ORDER BY Name, TimeIN 
+0

非常感謝GarethD。讓我明天早上在辦公室試試吧!非常感謝 !! =) – 2012-02-20 12:43:27

+0

它的工作原理! GarethD - >非常感謝! – 2012-02-20 22:42:20

+0

@KikiChandra - 如果這有幫助,請將其標記爲將其從「未回答」問題中刪除的答案。謝謝 – GarethD 2012-02-21 08:15:44