SELECT * mit Erweiterung

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Senekurios
**
Beiträge: 26
Registriert: So, 13.03.2016 20:22

SELECT * mit Erweiterung

Beitrag von Senekurios »

Hallo,

ich versuche gerade die Altersberechnung aus dem Handbuch

Code: Alles auswählen

SELECT
CASE 
WHEN MONTH("Birthdate") > MONTH(CURDATE())
THEN DATEDIFF('yy',"Birthdate",CURDATE())-1
WHEN (MONTH("Birthdate") = MONTH(CURDATE()) AND DAY("Birthdate")> DAY(CURDATE()))
THEN DATEDIFF('yy',"Birthdate",CURDATE())-1
ELSE DATEDIFF('yy',"Birthdate",CURDATE())
END AS "Age"


in eine Abfrage mit einzubauen, welche als Basis

Code: Alles auswählen

SELECT * FROM Tabelle WHERE Bedingung 
hat.

Das ganze sollte so aussehen, bringt aber einen Syntaxfehler.

Code: Alles auswählen

SELECT * , (CASE WHEN....) AS "Age" FROM Tabelle WHERE Bedingung
Geht diese Zusammenstellung grundsätzlich und wenn ja, was muss ich noch zusätzlich beachten. Oder bleibt mir nur der umstädliche Weg, alle Spalten aus der Tabelle dann einzeln einzulesen?

Gruß
Marko
RobertG
********
Beiträge: 2034
Registriert: Fr, 13.04.2012 19:28
Kontaktdaten:

Re: SELECT * mit Erweiterung

Beitrag von RobertG »

Hallo Marko,

der Haken liegt vermutlich in den Klammern:
nicht

Code: Alles auswählen

SELECT * , (CASE WHEN ... END) AS "Age" FROM Tabelle WHERE Bedingung
sondern

Code: Alles auswählen

SELECT * , CASE WHEN ... END AS "Age" FROM Tabelle WHERE Bedingung
Eventuell will Base auch noch vor dem Allroundzeichen * die Tabellenangabe haben, also

Code: Alles auswählen

SELECT "Tabelle".* , CASE WHEN ... END AS "Age" FROM Tabelle WHERE Bedingung
Der Zusammenhang müsste auf jeden Fall grundsätzlich gehen.

Warum hast Du übrigens die englischsprachige Fassung des Handbuches ("Birthdate")? Die deutschsprachige Fassung ist grundsätzlich die aktuellere.

Gruß

Robert
Senekurios
**
Beiträge: 26
Registriert: So, 13.03.2016 20:22

Re: SELECT * mit Erweiterung

Beitrag von Senekurios »

RobertG hat geschrieben:
Warum hast Du übrigens die englischsprachige Fassung des Handbuches ("Birthdate")? Die deutschsprachige Fassung ist grundsätzlich die aktuellere.

Gruß

Robert
Danke, ich werde das mal ausprobieren. Zu deiner Frage, ich programmiere für einen Freund aus Singapur. Deswegen halte ich alles in Englisch. Das Handbuch habe ich in Deutsch in der Version V5.1
Zuletzt geändert von Senekurios am Do, 21.04.2016 20:48, insgesamt 1-mal geändert.
Senekurios
**
Beiträge: 26
Registriert: So, 13.03.2016 20:22

Re: SELECT * mit Erweiterung

Beitrag von Senekurios »

RobertG hat geschrieben:Hallo Marko,

Code: Alles auswählen

SELECT "Tabelle".* , CASE WHEN ... END AS "Age" FROM Tabelle WHERE Bedingung
Dieser Fall geht. Ohne "Tabelle". vor * mag der Syntax nicht.
Antworten