Blubberbernd
Cadet 4th Year
- Registriert
- Juli 2009
- Beiträge
- 94
Hallo,
ich bin ein ziemlicher Anfänger in SQL und habe ein Problem bei dem ich nicht weiterkomme.
Ich habe eine Tabelle in der es 3 Spalten gibt :
1. Spalte : Translationcode
2. Spalte : Übersetzungstext
3. Spalte : Language-Kürzel
Die Sittuation ist Folgende:
Der Translationcode ist ein beliebiger String, dieser wird je nach gewählter Sprache im Programm übersetzt und als Übersetzungstext angezeigt.
Das Languagekürzel identifiziert die gewählte Sprache.
Es gibt immer nur 2 aktive Sprachen:
1. Englisch mit dem Kürzel 'E'
2. eine belibige andere mit einem belibigen Kürzel (z.B: 'D' für Deutsch)
Ich möchte nun eine SQL-Abfrage starten, bei der ich 3 Spalten erhalte:
Zum einen möchte ich alle Translationcodes haben die schon mit der Sprache Englisch und einer weiteren eingetragen sind.
Zu jedem gefundenem Translationcode in der Spalte 1 soll nun in der 2. Spalte der englische Übersetzungstext gefunden werden, existiert dieser nicht, so soll das Feld mit 'null' gefüllt werden. Die dritte Spalte enthält analog zur 2. den einen weiteren beliebigen Übersetzungstext. Ist keiner vorhanden, so soll auch in diesem Fall 'null' eingetragen werden.
Die Daten in der Tabelle sehen so aus
(Die Punkte dienen nur der besseren Übersichtlichkeit)
Transcode . . . . | . . . Übersetzungstext . | . . . Languagekürzel
--------------------------------------------------------------------------------
HALLO . . . . . . .| . . . . . . . .hello . . . . . . .| . . . . . . . .E
OEFFNEN . . . . . | . . . . . . . öffnen . . . . . . | . . . . . . . D
SCHLIEßEN . . . .| . . . . . . . close . . . . . . . | . . . . . . . E
SCHLIEßEN . . . .| . . . . . . schließen . . . . .| . . . . . . . D
Das Ergebnis soll so aussehen
Transcode . . . . | . . . Englisch . | . . . Deutsch
--------------------------------------------------------
HALLO . . . . . . . | . . . . hello . . . | . . . . null
OEFFNEN . . . . . | . . . . null . . . . | . . . öffnen
SCHLIEßEN . . . .| . . . .close . . . .| . . schließen
Ich hab keine Ahnung wie die Richtige Abfrage Lautet, das einzige was ich Hinbekommen habe war Sowas wie :
Select a.Transcode ,
(Select b.text from Tabellenname b where b.value = a.value and b.language = 'E'),
(Select c.text from Tabellenname c where c.value = a.value and b.language = 'D')
from Tabellenname a
where a.Language='E' or a.Language ='D'
oder so ähnlich,
da kommt aber nur sowas raus
Transcode . . . . | . . . Englisch . | . . . Deutsch
--------------------------------------------------------
HALLO . . . . . . . | . . . . hello . . . | . . . . null
OEFFNEN . . . . . | . . . . null . . . . | . . . öffnen
SCHLIEßEN . . . .| . . . .close . . . | . . . . null
SCHLIEßEN . . . .| . . . . null . . . . | . . schließen
wie kann ich nun die Zeile mit dem Schließen wie oben gezeigt zusammenfassen?
Danke schonmal für alle Posts!
Ein Arbeitskollege meinte man könnte da was mit 'decode' ausprbieren, brachte mich aber auch nicht zum Ziel.
Muss ja nicht stimmen, aber vllt fällt Jemand damit ja auch ne Lösung ein.
ich bin ein ziemlicher Anfänger in SQL und habe ein Problem bei dem ich nicht weiterkomme.
Ich habe eine Tabelle in der es 3 Spalten gibt :
1. Spalte : Translationcode
2. Spalte : Übersetzungstext
3. Spalte : Language-Kürzel
Die Sittuation ist Folgende:
Der Translationcode ist ein beliebiger String, dieser wird je nach gewählter Sprache im Programm übersetzt und als Übersetzungstext angezeigt.
Das Languagekürzel identifiziert die gewählte Sprache.
Es gibt immer nur 2 aktive Sprachen:
1. Englisch mit dem Kürzel 'E'
2. eine belibige andere mit einem belibigen Kürzel (z.B: 'D' für Deutsch)
Ich möchte nun eine SQL-Abfrage starten, bei der ich 3 Spalten erhalte:
Zum einen möchte ich alle Translationcodes haben die schon mit der Sprache Englisch und einer weiteren eingetragen sind.
Zu jedem gefundenem Translationcode in der Spalte 1 soll nun in der 2. Spalte der englische Übersetzungstext gefunden werden, existiert dieser nicht, so soll das Feld mit 'null' gefüllt werden. Die dritte Spalte enthält analog zur 2. den einen weiteren beliebigen Übersetzungstext. Ist keiner vorhanden, so soll auch in diesem Fall 'null' eingetragen werden.
Die Daten in der Tabelle sehen so aus
(Die Punkte dienen nur der besseren Übersichtlichkeit)
Transcode . . . . | . . . Übersetzungstext . | . . . Languagekürzel
--------------------------------------------------------------------------------
HALLO . . . . . . .| . . . . . . . .hello . . . . . . .| . . . . . . . .E
OEFFNEN . . . . . | . . . . . . . öffnen . . . . . . | . . . . . . . D
SCHLIEßEN . . . .| . . . . . . . close . . . . . . . | . . . . . . . E
SCHLIEßEN . . . .| . . . . . . schließen . . . . .| . . . . . . . D
Das Ergebnis soll so aussehen
Transcode . . . . | . . . Englisch . | . . . Deutsch
--------------------------------------------------------
HALLO . . . . . . . | . . . . hello . . . | . . . . null
OEFFNEN . . . . . | . . . . null . . . . | . . . öffnen
SCHLIEßEN . . . .| . . . .close . . . .| . . schließen
Ich hab keine Ahnung wie die Richtige Abfrage Lautet, das einzige was ich Hinbekommen habe war Sowas wie :
Select a.Transcode ,
(Select b.text from Tabellenname b where b.value = a.value and b.language = 'E'),
(Select c.text from Tabellenname c where c.value = a.value and b.language = 'D')
from Tabellenname a
where a.Language='E' or a.Language ='D'
oder so ähnlich,
da kommt aber nur sowas raus
Transcode . . . . | . . . Englisch . | . . . Deutsch
--------------------------------------------------------
HALLO . . . . . . . | . . . . hello . . . | . . . . null
OEFFNEN . . . . . | . . . . null . . . . | . . . öffnen
SCHLIEßEN . . . .| . . . .close . . . | . . . . null
SCHLIEßEN . . . .| . . . . null . . . . | . . schließen
wie kann ich nun die Zeile mit dem Schließen wie oben gezeigt zusammenfassen?
Danke schonmal für alle Posts!
Ein Arbeitskollege meinte man könnte da was mit 'decode' ausprbieren, brachte mich aber auch nicht zum Ziel.
Muss ja nicht stimmen, aber vllt fällt Jemand damit ja auch ne Lösung ein.
Zuletzt bearbeitet: