I have a MySQL table with fields and data such as follows;
PartNumber Priority SupName
a1 0 One
a2 0 One
a2 1 Two
a3 0 One
a4 1 Two
a5 2 Three
I am trying to create a view where the parts that have multiple rows are combined into a single row, and into separate fields such as
Ideally This;
PartNumber Sup1 Sup2 Sup3
a1 One NULL NULL
a2 One Two NULL
a3 One NULL NULL
a4 Two NULL NULL
a5 Three NULL NULL
Or I can live with this
PartNumber Sup1 Sup2 Sup3
a1 One NULL NULL
a2 One Two NULL
a3 One NULL NULL
a4 NULL Two NULL
a5 NULL NULL Three
How would I build a view or select statement to accomplish this?
The closest I have come so far is;
SELECT PartNumber,
IF(Priority=0, SupName, NULL) AS Sup1,
IF(Priority=1, SupName, NULL) AS Sup2,
IF(Priority=2, SupName, NULL) AS Sup3
FROM SupXref
ORDER BY PartNumber
This however gives me a separate row for each of the fields and I need a single line.
You're just missing a group by :)
Edit:
After playing for a while I think I got the first solution you're looking for. Give it a try :)
For the following table:
Data is turn into this:
And finally into this: