Re: [de-users] Gruppenbildung über versch achtelte Abfrage

2010-12-27 Diskussionsfäden CWH

Moin.

Also soweit ich weiß -bin nämlich selber mal darauf reingefallen, ist 
alter ein SQL - Befehl zum ändern von Tabelleninhalten... und kann 
demzufolge nicht als Bezeichner verwendet werden. Das allerdings war bei 
MySql 4.xx - wie es heute ist, weiß ich nicht.


Gruß, claus

Am 26.12.2010 12:24, schrieb Jürgen:

Hallo,

ich möchte über eine Abfrage Gruppen bilden lassen, das neu 
auszugebende Feld soll also unterschiedliche Einträge erhalten. Wenn 
ich beim Beispiel des Alters bleibe, also folgende Gruppen:

unter 19
19 - 30
31 - 40
über 40
Im Dienst mache ich meine Abfragen mit Crystal Reports, das eine tolle 
SQL-Formulierung erlaubt. Hier wäre die Vorgehensweise, zunächst das 
Formelfeld zu benennen (also z.B. Altersgruppe) und dann dieses Feld 
zu editieren. Für die genannten Bedingungen wäre dies:


if Alter 19 then 1 else if (Alter =19 and Alter30) then 2 else if 
(Alter =30 and Alter40) then 3 else if Alter =40 then 4


In der Base-Abfrage habe ich jetzt mit allen möglichen Formulierungen
IF
CASEWHEN
CASE WHEN

Aber schon der erste Schritt wie
CASE WHEN Alter 19  THEN 1 END
(analog zu CASE WHEN expr1 THEN v1[WHEN expr2 THEN v2] [ELSE v4] END 
aus http://hsqldb.org/doc/guide/ch09.html;) führt nur zu einer 
Fehlermeldung, wo und wieviele Klammern ich auch ergänzen mag


Weiß jemand eine Lösung für diese Fragestellung?
Danke schon mal für jeden Hinweis
Jürgen


-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org




Re: [de-users] Gruppenbildung über versch achtelte Abfrage

2010-12-27 Diskussionsfäden Robert Großkopf
Hallo Claus,

 Also soweit ich weiß -bin nämlich selber mal darauf reingefallen, ist
 alter ein SQL - Befehl zum ändern von Tabelleninhalten... und kann
 demzufolge nicht als Bezeichner verwendet werden. Das allerdings war bei
 MySql 4.xx - wie es heute ist, weiß ich nicht.

Den Teil würde auch eine alte MySQL-Fassung nicht als Befehl
interpretieren, da Alter in Anführungsstrichen stand.

Gruß

Robert

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Gruppenbildung über versch achtelte Abfrage

2010-12-26 Diskussionsfäden Robert Großkopf
Hallo Jürgen,

 
 ich möchte über eine Abfrage Gruppen bilden lassen, das neu auszugebende
 Feld soll also unterschiedliche Einträge erhalten. Wenn ich beim
 Beispiel des Alters bleibe, also folgende Gruppen:
 unter 19
 19 - 30
 31 - 40
 über 40
 Im Dienst mache ich meine Abfragen mit Crystal Reports, das eine tolle
 SQL-Formulierung erlaubt. Hier wäre die Vorgehensweise, zunächst das
 Formelfeld zu benennen (also z.B. Altersgruppe) und dann dieses Feld
 zu editieren. Für die genannten Bedingungen wäre dies:
 
 if Alter 19 then 1 else if (Alter =19 and Alter30) then 2 else if
 (Alter =30 and Alter40) then 3 else if Alter =40 then 4

Folgendes müsste funktionieren (ich habe spontan nur CASEWHEN-Beispiele
gefunden)
CASEWHEN (Bedingung,Dann,Sonst)
Also:
CASEWHEN((Alter19),1,CASEWHEN((Alter31),2,CASEWHEN((Alter40),3,4)))
 
 In der Base-Abfrage habe ich jetzt mit allen möglichen Formulierungen
 IF
 CASEWHEN
 CASE WHEN
 
 Aber schon der erste Schritt wie
 CASE WHEN Alter 19  THEN 1 END
 (analog zu CASE WHEN expr1 THEN v1[WHEN expr2 THEN v2] [ELSE v4] END
 aus http://hsqldb.org/doc/guide/ch09.html;) führt nur zu einer
 Fehlermeldung, wo und wieviele Klammern ich auch ergänzen mag

Die Klammern müssen vor allem dann stehen, wenn Du eine Bedingung
formulierst. Leerzeichen bringen die Abfrage sonst durcheinander.
Gegebenenfalls muss auch die Abfrage nicht über die GUI gestellt werden,
sondern der Button für die direkte SQL-Abfrage gedrückt werden.

Gruß

Robert

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Gruppenbildung über versch achtelte Abfrage

2010-12-26 Diskussionsfäden Thomas

Hallo Jürgen

Am 26.12.2010 12:24, schrieb Jürgen:


Aber schon der erste Schritt wie
CASE WHEN Alter 19  THEN 1 END
(analog zu CASE WHEN expr1 THEN v1[WHEN expr2 THEN v2] [ELSE v4] END 
aus http://hsqldb.org/doc/guide/ch09.html;) führt nur zu einer 
Fehlermeldung, wo und wieviele Klammern ich auch ergänzen mag



Da kannst Du wohl nichts machen, leider. Folgendes SQL:

SELECT Name , Alter
,case when Alter 18 THEN 'Kind' end as Gruppe
FROM Tabelle1

Bringt bei mir auch einen Fehler. Wenn ich diese paar Befehle aber 
kopiere und unter EXTRAS/SQL einfüge und auf ausführen klicke, erhalte 
ich die Meldung Befehl erfolgreich ausgeführt. Da gibt es wohl 
Einschränkungen beim Abfrageentwurf, schade.


Ahoi

Thomas

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Gruppenbildung über versch achtelte Abfrage

2010-12-26 Diskussionsfäden Thomas

Hallo  Jürgen und Robert,

Am 26.12.2010 18:32, schrieb Robert Großkopf:


Folgendes müsste funktionieren (ich habe spontan nur CASEWHEN-Beispiele
gefunden)
CASEWHEN (Bedingung,Dann,Sonst)
Also:
CASEWHEN((Alter19),1,CASEWHEN((Alter31),2,CASEWHEN((Alter40),3,4)))
Soeben getestet, gleiches Ergebnis wie in meiner Mail von vor ein paar 
Minuten. Und das direkte SQL-Ausführen bringt ja keine Tabelle zur 
Ansicht, nur die Meldung.


Ahoi

Thomas

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Gruppenbildung über versch achtelte Abfrage

2010-12-26 Diskussionsfäden Thomas

Hallo,

noch eine gute Nachricht. Ich habe mir mal Libreoffice 3.3 RC2 
installiert (geht ja parallel zu OOo) und da funktioniert das SQL wie 
unten. Vermutlich dann auch unter OOo3.3 (?).


Ahoi

Thomas

Am 26.12.2010 18:46, schrieb Thomas:

Hallo Jürgen

Am 26.12.2010 12:24, schrieb Jürgen:


Aber schon der erste Schritt wie
CASE WHEN Alter 19  THEN 1 END
(analog zu CASE WHEN expr1 THEN v1[WHEN expr2 THEN v2] [ELSE v4] 
END aus http://hsqldb.org/doc/guide/ch09.html;) führt nur zu einer 
Fehlermeldung, wo und wieviele Klammern ich auch ergänzen mag



Da kannst Du wohl nichts machen, leider. Folgendes SQL:

SELECT Name , Alter
,case when Alter 18 THEN 'Kind' end as Gruppe
FROM Tabelle1

Bringt bei mir auch einen Fehler. Wenn ich diese paar Befehle aber 
kopiere und unter EXTRAS/SQL einfüge und auf ausführen klicke, erhalte 
ich die Meldung Befehl erfolgreich ausgeführt. Da gibt es wohl 
Einschränkungen beim Abfrageentwurf, schade.


Ahoi

Thomas



-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org



Re: [de-users] Gruppenbildung über versch achtelte Abfrage

2010-12-26 Diskussionsfäden Robert Großkopf
Hallo Thomas,

 CASEWHEN((Alter19),1,CASEWHEN((Alter31),2,CASEWHEN((Alter40),3,4)))

 Soeben getestet, gleiches Ergebnis wie in meiner Mail von vor ein paar
 Minuten. Und das direkte SQL-Ausführen bringt ja keine Tabelle zur
 Ansicht, nur die Meldung.

Ich habs getestet - es funktioniert: Die direkte Ausführung ist auch in
der Abfrage möglich. Abfrage: Bearbeiten - SQL-Kommando direkt ausführen
(oder auch der Button rechts außen ...).

Die GUI versteht die Abfrage nicht.

Gruß

Robert

-
To unsubscribe, e-mail: users-unsubscr...@de.openoffice.org
For additional commands, e-mail: users-h...@de.openoffice.org