1
我在postgres中使用了交叉表函數。基本的SQL是:crosstab()查詢移位列
select distinct
o_location,
co_name,
o_date,
o_ndate,
o_day,
o_hour,
o_type
from outputs_txt
left join courses on o_course = co_foreign
left join locations on o_location = l_code
where o_date = '2011-10-10'
order by o_hour
我的交叉表查詢是
SELECT *
FROM crosstab(
'SELECT DISTINCT
COALESCE(o_location, '''')
,o_hour AS hour
,c.co_name
FROM outputs_txt AS d
LEFT JOIN courses AS c
on o_course = c.co_foreign
LEFT JOIN locations as a
on o_location = a.l_code
WHERE d.o_date = ''2011-10-10'''
)
AS ct(
o_location varchar
,hour_0 varchar
,hour_1 varchar
,hour_2 varchar
,hour_3 varchar
,hour_4 varchar
,hour_5 varchar
,hour_6 varchar
,hour_7 varchar
,hour_8 varchar
,hour_9 varchar
,hour_10 varchar
,hour_11 varchar
,hour_12 varchar
,hour_13 varchar
,hour_14 varchar
,hour_15 varchar
,hour_16 varchar
,hour_17 varchar)
的問題是,結果全部左移。
例如,如果某個位置的課程顯示在hour_8
上,則顯示在hour_0
中。
這是所有地點的所有課程。他們全部左對齊。
我哪裏錯了?
排序依據似乎沒有任何效果。 – Yebach
排序似乎沒有任何效果。 我得到 o_location \t hour_0 \t hour_1 \t hour_2 \t hour_3 \t hour_4 \t ...... \t hour_17 .... \t SUB1 \t SUB1 \t SUB1 \t SUB2 \t SUB3 \t' \t SUBX \t subX \t subY \t subY \t''\t'' 當我應該得到不像 o_location \t hour_0 \t \t hour_1 hour_2 \t \t hour_3 hour_4 \t \t hour_5 hour_6 \t \t ...... .... hour_17 11 \t \t \t \t SUB1 SUB1 \t \t SUB1 SUB2 \t \t SUB3 \t \t SUBX SUBX \t \t \t \t subY \t subY \t subY – Yebach
@Yebach:請用適當的格式編輯您的問題。這太難以破譯了。 –