Guten morgen allerseits,
ich habe folgende Problemstellung und hoffe inständig, dass mir einer helfen kann.
Folgendes Szenario:
Ich habe zwei Tabellen, die ich zusammenführen möchte:
Bei der Zusammenführung soll eine neue Spalte "Color" definiert werden.
Bei der Kombination Value1=3 AND Value2=2 AND Value3=2 soll diese Spalte den String 'green' beinhalten. Ist die Kombination nicht vorhanden, soll der String 'red' ausgegeben werden.
Bis hierhin sollte das Ganze relativ einfach zu lösen sein. Nur soll für jedes Kabel genau eine Zeile, bzw. ein Eintrag vorhanden sein.
D.h. die SQL Abfrage soll bei einem Kabel, bzw. einer ID prüfen, ob die Wertekombination vorhanden ist. Ist sie vorhanden, gib für "Color" den String 'green' aus und ignoriere alle anderen Kombinationen für diese ID.
Ist diese nicht vorhanden, so gib 'red' aus und ignoriere ebenfalls alle anderen Kombinationen für diese ID.
Das Ergebnis sollte wie folgt aussehen:
Kleiner Hinweis: Nicht jede ID von TabellA ist auch in TabelleB vorhanden. In dem Fall soll auch der String 'red' ausgegeben werden.
Momentan sieht meine SQL-Abfrage wie folgt aus:
Wie erwartet habe ich somit mehrere Zeilen pro Kabel:
Bei jeden weiteren Versuch, die Zeilen zusammenzufassen, bin ich kläglich gescheitert..
Ich hoffe ich habe mein Problem verständlich rübergebracht.
Kann mir jemand weiterhelfen?
Vielen Dank im voraus,
Johannes
ich habe folgende Problemstellung und hoffe inständig, dass mir einer helfen kann.
Folgendes Szenario:
Ich habe zwei Tabellen, die ich zusammenführen möchte:
Code:
TabelleA
ID USERLABEL
1 Kabel1
2 Kabel2
3 Kabel3
4 Kabel4
Code:
TabelleB
ID TabelleAID VALUE1 VALUE2 VALUE3
1 1 1 3 4
2 1 3 2 4
3 1 2 4 2
4 2 3 2 2
5 2 1 1 4
6 3 4 4 1
7 3 3 3 1
Bei der Zusammenführung soll eine neue Spalte "Color" definiert werden.
Bei der Kombination Value1=3 AND Value2=2 AND Value3=2 soll diese Spalte den String 'green' beinhalten. Ist die Kombination nicht vorhanden, soll der String 'red' ausgegeben werden.
Bis hierhin sollte das Ganze relativ einfach zu lösen sein. Nur soll für jedes Kabel genau eine Zeile, bzw. ein Eintrag vorhanden sein.
D.h. die SQL Abfrage soll bei einem Kabel, bzw. einer ID prüfen, ob die Wertekombination vorhanden ist. Ist sie vorhanden, gib für "Color" den String 'green' aus und ignoriere alle anderen Kombinationen für diese ID.
Ist diese nicht vorhanden, so gib 'red' aus und ignoriere ebenfalls alle anderen Kombinationen für diese ID.
Das Ergebnis sollte wie folgt aussehen:
Code:
ID USERLABEL COLOR
1 Kabel1 red
2 Kabel2 green
3 Kabel3 red
4 Kabel4 red
Kleiner Hinweis: Nicht jede ID von TabellA ist auch in TabelleB vorhanden. In dem Fall soll auch der String 'red' ausgegeben werden.
Momentan sieht meine SQL-Abfrage wie folgt aus:
Code:
SELECT USERLABEL,
CASE WHEN VALUE1=3 AND VALUE2=2 AND VALUE3=2
THEN 'green'
ELSE 'red'
END AS COLOR
FROM TabelleA, TabelleB
WHERE TabelleA.ID=TabelleB.TabelleAID(+)
Wie erwartet habe ich somit mehrere Zeilen pro Kabel:
Code:
USERLABEL COLOR
Kabel1 red
Kabel1 red
Kabel1 red
Kabel2 green
Kabel2 red
Kabel3 red
Kabel3 red
Kabel4 red
Bei jeden weiteren Versuch, die Zeilen zusammenzufassen, bin ich kläglich gescheitert..
Ich hoffe ich habe mein Problem verständlich rübergebracht.
Kann mir jemand weiterhelfen?
Vielen Dank im voraus,
Johannes
Zuletzt bearbeitet: