Zurückgeben mehrerer Werte in der gleichen Zeile, basierend auf einem Wert in der gleichen Tabelle

Ich war ziemlich ratlos, für eine Weile, wurde versucht, die Ergebnisse erhalten Sie von einem unserer Tische auf der Basis der anderen Ergebnisse, und nicht zurückgeben, die mehr als eine Zeile für jeden Wert, es ist schwer zu erklären für mich, so werde ich ein Beispiel geben.

Wir haben Werte, zum Beispiel ÄPFEL. Jeder Apfel hat seine eigene Seriennummer, SERIENNUMMER. für ein paar ÄPFEL, es gibt mehrere (bis zu 6) SERIELLE Werte.

ID      APPLE       SERIAL
2052    5035        1
2055    5035        4
2058    5035        8
2070    5040        5

In meine Ergebnisse, ich will wieder jeden APFEL einmal, und alle seriellen zugeordnet, zum Beispiel:

APPLE   SERIAL_1    SERIAL_2    SERIAL_3    SERIAL_4
5035    1           4           8
5040    5

Habe ich versucht eine Abfrage machen, die im Grunde verbindet die gleiche Tabelle 4-mal, nämlich serial_x nicht in (anderen Serien). Das problem mit diesem ist, dass es mehrere Ergebnisse wie dieses:

APPLE   SERIAL_1    SERIAL_2    SERIAL_3    SERIAL_4
5035    1           4           8
5035    1           8           4
5035    4           1           8
5035    4           8           1
5035    8           1           4
5035    4           4           1
5040    5

Dies ist offensichtlich, weil apple 5035 mit einer anderen seriellen tritt mehrfach in der Tabelle, und es wird alle möglichen Kombinationen der drei Serien zugeordnet. Ich bin sicher, es gibt eine einfache Möglichkeit, dies zu tun, aber ich habe versucht, für eine lange Zeit und habe nicht in der Lage zu produzieren ein gutes Ergebnis. Kann jemand helfen?

Auf SQL Server, die Sie verwenden können, PIVOT-Funktion. Ich bin mir nicht sicher, ob PIVOT existiert in MySql und Oracle.
Es ist eine PIVOT-Funktion in Oracle.

InformationsquelleAutor Jamie Joe | 2011-11-01

Schreibe einen Kommentar