2011-03-12 30 views
0

這是我的查詢查詢我需要這樣的

SELECT CAL.CALENDAR_NAME,CAL.CALENDAR_ID,CALDAY.CALENDARDAY_DAYID 
FROM lms_calendar AS CAL 
    LEFT JOIN LMS_CALENDARDAY AS CALDAY 
    ON CAL.CALENDAR_ID = CALDAY.CALENDARDAY_CALENDARID 

,我得到這樣

CALENDAR_NAME          CALENDAR_ID CALENDARDAY_DAYID 
-------------------------------------------------- ----------- ----------------- 
Test            1   1 
Test            1   2 
Test            1   3 
Test            1   4 
Test            1   6 

結果,但我需要這樣的

calendar_name calendar_dayid calendar_dayid calendar_dayid calendar_dayid calendar_dayid 
test    1     2    3    4    
+0

請格式化您的問題。 – vissi 2011-03-12 09:37:40

+2

看看使用'PIVOT'命令 – Tony 2011-03-12 09:45:12

+1

爲什麼你需要一個結果與5個相同名字的列? – 2011-03-12 13:30:49

回答

2

下面是一個查詢使用PIVOT運營商

SELECT calendar_name, 
    [1] AS calendar_dayid, 
    [2] AS calendar_dayid, 
    [3] AS calendar_dayid, 
    [4] AS calendar_dayid, 
    [5] AS calendar_dayid 
FROM (
    SELECT CAL.CALENDAR_NAME,CAL.CALENDAR_ID,CALDAY.CALENDARDAY_DAYID 
    FROM lms_calendar AS CAL 
     LEFT JOIN LMS_CALENDARDAY AS CALDAY 
     ON CAL.CALENDAR_ID = CALDAY.CALENDARDAY_CALENDARID 
    ) AS src 
PIVOT (
    MAX(calendarday_dayid) 
    FOR calendarday_dayid IN ([1], [2], [3], [4], [5]) 
    ) AS pvt