※ 引述《bocosom (waterweeds)》之銘言:
: ※ 引述《koken (都要怪加拿大)》之銘言:
: : Column1 Column2
: : A a
: : A d
: : A g
: : ...
: : ...
: : B a
: : B c
: : B p
: : ...
: : ...
: : 這樣子table變得太長而難以閱讀
: : 如何變成
: : A a,d,g....
: : B a,c,p....
: : 其中a,d,g...的資料在不在同一行都無所謂 如果在同一個cell最好
: : 請問要如何辦到呢
: 感覺上有點奇怪, 這樣做不是反而不方便 也不符合BCNF(連1NF也沒有)
: 這樣往後要處理資料會很不方便吧(?)
: 不太了解這樣做的用意..
這種東西只適合資料少的報表呈現,如果資料量多可能就不適合這樣的呈現
方式。尤其當你的Column2有重覆資料時更難呈現。再說,A跟B的資料不一
致時會更難辦。
假設你的Column2是數字欄位
select Column1, sum(a1) a1, sum(a2) a2, sum(a3) a3
from
(
select Column1, Column2 a1, 0 a2, 0 a3
from TableName
where Column1 ='A' and Column2 = a
union
select Column1, 0 a1, Column a2, 0 a3
from TableName
where Column ='A' and Column2 = d
union
select Column1, 0 a1, 0 a2, Column2 a3
from TableName
where Column ='A' and Column2 = g
)
group by Column1
以上是A的部份,B的部份同上,再跟A union
這樣你的報表就可以呈現你要的樣子。
不知道這樣是否有得到你要的答案。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.39.178
※ 編輯: nika 來自: 61.59.39.178 (08/13 11:01)