2012-04-08 5 views
0

Ich habe eine Tabelle, die eine SKU-Nummer, attribute_name und einen Attributwert hat. Jeder Sku könnte viele Attribute haben.Müssen mehrere Zeilen in MySql oder Access mit einer Zeile kombinieren

Im Moment sieht die Tabelle so aus.

 
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 

Ich brauche sie so zu sein.

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

Hinzufügen jedes Attributwerts. so würde zum Beispiel das obige Beispiel 5 verschiedene Attribute haben. Jede SKU hat irgendwo zwischen 2 und 20 Attribute. Jede Hilfe wäre großartig. Entschuldigung für die schlechte Formatierung.

Dies kann entweder in Access oder MySQL

+1

1) Ich bekomme nicht ganz das Ergebnis. Sie haben Daten verloren. EG: Wo ist 'OEM/Compatible' hingegangen? 2) Meinten Sie, dass Sie für jeden 'sku' alle' att_nm' verkettet hinzufügen möchten? –

+0

Sie sollten den ATT_NM-Textinhalt wahrscheinlich in eine andere Tabelle verschieben und dann mit ATT_ID in dieser Tabelle verknüpfen. – nnichols

+0

Ja für jede SKU, ich möchte alle ATT_NM und ATT_VAL zusammen in einer Zeile hinzufügen. – GMattJohnson

Antwort

0

Sie könnten versuchen, so etwas wie dies (mit MySQL) erfolgen -

SELECT DISTINCT ATT_NM 
FROM table 
-

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 

Sie die Liste der attribs Verwendung abrufen konnte

und verwenden Sie dann die zurückgegebenen Werte, um die vorherige Abfrage zu erstellen.

Verwandte Themen