Seite 1 von 1
OOo Base SQL Wenn dann in Abfragen
Verfasst: So, 22.01.2012 10:41
von Bus
Moin,
ich habe eine Abfrage erstellt. jeweils mit 3 Spalten. "Spalte 1" "Spalte2 " "Spalte3"
Ich möchte jetzt in "Spalte" 3 das Ergebnis wie folgt haben.
Resulttat in "Spalte3" : Wenn "Spalte1" der Wert = 1, dann nehme den Wert von "Spalte2" ansonsten nehme den Wert aus "Spalte1"
Vielen Dank für die Unterstützung eines neuen Openoffice nutzer
und tschüss Bus
Re: OOo Base SQL Wenn dann in Abfragen
Verfasst: So, 22.01.2012 18:49
von DPunch
Aloha
Code: Alles auswählen
SELECT CASE "Spalte1" WHEN 1 THEN "Spalte2" ELSE "Spalte1" END FROM DUAL
Re: OOo Base SQL Wenn dann in Abfragen
Verfasst: Mo, 23.01.2012 09:29
von Bus
Moin, und vielen Dank für die Antwort.
Da ich noch nicht viel Erfahrungen im SQL habe , habe ich noch drei Nachfragen:
SELECT CASE "Spalte1" WHEN 1 THEN "Spalte2" ELSE "Spalte1" END FROM DUAL
1. Das Ergebnis soll ja in die "Spalte3" aber wor finde ich die in dem Code?
2. Was bedeutet "END FROM DUAL" im Code?
3. Kann ich den Begriff "SELECT" mehrfach im Code verwenden oder muss der Begriff nicht immer m Anfang stehen?
Vielen Dank für die nochmalige Mühe und einen schönen Tag
Bus
Re: OOo Base SQL Wenn dann in Abfragen
Verfasst: Di, 24.01.2012 13:26
von DPunch
Aloha
Bus hat geschrieben:1. Das Ergebnis soll ja in die "Spalte3" aber wor finde ich die in dem Code?
Das Konstrukt "CASE "Spalte1" WHEN 1 THEN "Spalte2" ELSE "Spalte1" END" ist Deine Spalte3.
Wenn Du willst, kannst Du auch den entsprechenden Spaltenalias vergeben:
Code: Alles auswählen
SELECT CASE "Spalte1" WHEN 1 THEN "Spalte2" ELSE "Spalte1" END AS "Spalte3" FROM "meineTabelle"
Bus hat geschrieben:2. Was bedeutet "END FROM DUAL" im Code?
END ist Bestandteil der CASE-Fallunterscheidung, FROM sollte bekannt sein, DUAL ist eine x-beliebige Tabelle, ersetz es einfach mit dem entsprechenden Tabellennamen.
Bus hat geschrieben:3. Kann ich den Begriff "SELECT" mehrfach im Code verwenden oder muss der Begriff nicht immer m Anfang stehen?
Jede einzelne Abfrage für sich betrachtet kann nur ein SELECT haben, und dieses muss am Anfang stehen, richtig.
Ein Komplex aus Abfragen (z.B. mit korrelierten Unterabfragen) kann allerdings auch mehrere SELECTS enthalten.
Re: OOo Base SQL Wenn dann in Abfragen
Verfasst: Di, 24.01.2012 15:07
von Bus
Moin,
vielen Dank für die Erklärungen, man lernt immer dazu.
Ich habe folgenden SQL Code eingeben:
SELECT "Spalte1", "Spalte2" CASE "Spalte1" WHEN 1 THEN "Spalte2" ELSE "Spalte1" END AS "Spalte3" FROM "Abfrage2" AS "Abfrage2"
Leider bekomme ich SQL Fehlr im Syntax, SQL Status S1000 Fehlr Code 1000
Kann man mir noch einmal helfen.
Vielen Dank
Bus
Re: OOo Base SQL Wenn dann in Abfragen
Verfasst: Di, 24.01.2012 15:23
von pmoegenb
Bus hat geschrieben:
Ich habe folgenden SQL Code eingeben:
SELECT "Spalte1", "Spalte2" CASE "Spalte1" WHEN 1 THEN "Spalte2" ELSE "Spalte1" END AS "Spalte3" FROM "Abfrage2" AS "Abfrage2"
Leider bekomme ich SQL Fehlr im Syntax, SQL Status S1000 Fehlr Code 1000
Entspricht ja auch nicht dem Code von DPunch.
Re: OOo Base SQL Wenn dann in Abfragen
Verfasst: Di, 24.01.2012 15:42
von DPunch
Aloha
Zum einen fehlt hier
Bus hat geschrieben:SELECT "Spalte1", "Spalte2" CASE "Spalte1" WHEN 1 THEN "Spalte2" ELSE "Spalte1" END AS "Spalte3" FROM "Abfrage2" AS "Abfrage2"
ein Komma zwischen "Spalte2" und "CASE".
Zum anderen ist es unter Umständen nötig, oben in der Symbolleiste das Häkchen bei "SQL-Kommando direkt ausführen" zu setzen.
Re: OOo Base SQL Wenn dann in Abfragen
Verfasst: Di, 24.01.2012 16:43
von Bus
Moin, Danke für die Antwort, leider hat es nicht geklappt.
Kann der Fehler bei der Spalte3 (dort soll ja das Ergebniss stehen) liegen? Ich denke, dass die Spalte3 durch den Code gebildet wird oder wie muss ich die Spalte3 anlegen.
Noch mal vielen Dank
Gruß
Bus
Re: OOo Base SQL Wenn dann in Abfragen
Verfasst: Di, 24.01.2012 18:57
von DPunch
Aloha
Bus hat geschrieben:Kann der Fehler bei der Spalte3 (dort soll ja das Ergebniss stehen) liegen?
Nein, der Fehler liegt darin, dass Du die Abfrage gegen eine in Base gespeicherte Abfrage laufen lassen willst - das ist allerdings nicht möglich.
Re: OOo Base SQL Wenn dann in Abfragen
Verfasst: Di, 24.01.2012 19:57
von Bus
Moin, Danke das war die Antwort. Ich wußte nicht, dass man in Openoffice sowas nur direkt aus einer Tabelle abfragen kann.
Vielen Dank für die Ausdauer und Mühe
und tschüss
Bus