2012-04-08 93 views
0

我有一個包含sku編號,attribute_name和屬性值的表。每個sku都可能有許多隨機的。需要在MySql或Access中將多行組合到一行中

現在表格看起來像這樣。

 
SKU,    ATT_NM,           ATT_VAL 
TOST3580, Supply Type,         Toner 
TOST3580, Pre-Consumer Recycled Content Percent [Nom], 0 % 
TOST3580, Post-Consumer Recycled Content Percent [Nom], 0 % 
TOST3580, Total Recycled Content Percent [Nom],   0 % 
TOST3580, OEM/Compatible,         OEM 

我需要他們更像這樣。

 
SKU,ATT_NM,ATT_VAL,ATT_NM1,ATT_VAL1 
TOST3580,Supply,Type,Toner,Pre-Consumer Recycled Content Percent,0 % 

添加每個屬性值。例如上面的例子會有5個不同的屬性。每個SKU具有2-20個屬性。任何幫助都是極好的。抱歉格式不正確。

這可以在任一接入完成或MySQL

+1

1)我不太清楚結果。你丟失了數據。 EG:'OEM /兼容'去了哪裏? 2)你的意思是你想爲每個'sku'添加所有'att_nm'級聯? – 2012-04-08 22:44:42

+0

您應該將ATT_NM文本內容移動到另一個表格,然後使用此表中的ATT_ID鏈接到該表格。 – nnichols 2012-04-08 23:01:38

+0

是的,對於每個SKU,我想將所有ATT_NM和ATT_VAL一起添加到一行中。 – GMattJohnson 2012-04-08 23:30:17

回答

0

你可以嘗試這樣的事情(與MySQL) -

SELECT 
    SKU, 
    GROUP_CONCAT(IF(ATT_NM = 'Supply Type', ATT_VAL, NULL)) AS `Supply Type`, 
    GROUP_CONCAT(IF(ATT_NM = 'Pre-Consumer Recycled Content Percent [Nom]', ATT_VAL, NULL)) AS `Pre-Consumer Recycled Content Percent [Nom]`, 
    ... 
FROM table 
GROUP BY SKU 

你可以通過檢索attribs名單 -

SELECT DISTINCT ATT_NM 
FROM table 

,然後使用返回的值構建prev查詢。