Abfrage mit Parameterübergabe für Kriterium

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

mlebek
**
Beiträge: 35
Registriert: Mi, 23.05.2007 23:47

Abfrage mit Parameterübergabe für Kriterium

Beitrag von mlebek »

Hallo,

ich habe eine Abfrage erstellt, die die Mitgliederanzahl zu einem bestimmten Datum ermittelt.

Code: Alles auswählen

SELECT COUNT( "ID" ) AS "Mitglieder" FROM "Statistik_a" AS "Statistik_a" 
WHERE ( "Eintrittsdatum" <= {D '2008-01-01' } AND ( "Austrittsdatum" > {D '2008-01-01' } OR "Austrittsdatum" IS NULL ) )
Jetzt würde ich natürlich gerne die Mitgliederanzahl zu einem beliebigen Datum abfragen. Gibt es eine Möglichkeit, zB mittels Parameterübergabe nach beliebigem Datum abzufragen?

Manfred
Zuletzt geändert von mlebek am So, 21.06.2009 19:20, insgesamt 1-mal geändert.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Abfrage mit veränderbarem Kriterium

Beitrag von komma4 »

Wenn wir wüssten, welches OOo, welche Datenbank, welches Spaltenformat (DATE, TIMESTAMP), wie Du die Abfrage einsetzen willst (Formular oder im BASIC Code), und wie Du Dir die Eingabe des Auswahldatums vorstellst ... dann könnten wir Dir vielleicht konkret helfen.


Generell geht das natürlich, wobei (bei vermuteter OOo intener HSQLDB*) die Funktionen mit DATUM sehr eingeschränkt ist. Inwieweit Deine Abfrage mit Formularen geht kann ich mangels Erfahrung auch nicht sagen: meine OOo-"Standardversion" 3.0.1 verhält sich mit Formularen äusserst merkwürdig.


* hier LINK zur HSQLDB-Dokumentation
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
mlebek
**
Beiträge: 35
Registriert: Mi, 23.05.2007 23:47

Re: Abfrage mit veränderbarem Kriterium

Beitrag von mlebek »

Ich nutze OOo 3.0.0, Feldtyp ist DATE, die Abfrage ist eine normale Abfrage und das Datum soll per Dialogfenster abgefragt werden.

Ich möchte es nicht als Macro machen, weil ich dann wohl bei jedem Benutzer(Terminalserver) die Datenbank registrieren müsste.

Ich hatte schon mit der Parameterabfrage in Abfragen experimentiert, aber wie ändert man damit Kriterien?
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Abfrage mit veränderbarem Kriterium

Beitrag von komma4 »

Datenbank HSQLDB -oder MySQL (hast mal eine MySQL-Frage gepostet).
per Dialogfenster abgefragt werden.
Ich möchte es nicht als Macro
Wie erstellst Du einen Dialog ohne Makros?
die Datenbank registrieren müsste.
Andrew behauptet, dass es nicht nötig sei: Andrews Base-Dokument, S 62
Andrew hat geschrieben:You can manipulate a database without a registered data source. The data source is the database document. Listing 31 demonstrates how to obtain a data source based on its URL




Wie rufen die Anwender die Abfrage auf - wie soll das Ergebnis verarbeitet werden?



Ich weiss nicht wie ich Dir helfen kann ...
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
mlebek
**
Beiträge: 35
Registriert: Mi, 23.05.2007 23:47

Re: Abfrage mit veränderbarem Kriterium

Beitrag von mlebek »

Es ist HSQLDB
komma4 hat geschrieben:Wie erstellst Du einen Dialog ohne Makros?
Indem ich in der Designansicht einer Abfrage, einen Doppelpunkt vor einer Frage platziere, das erzeugt beim Ausführen ein Dialogfenster mir Eingabefeld.

Die Anwender rufen die Abfrage mit einem Doppelklick auf?, wobei ich den Eindruck habe dass du etwas anderes unter Abfrage verstehst als ich, meinst du eine SQL-Abfrage, ich meine die Openoffice Base Abfrage.

das mit dem Makro wäre dann die letzte Alternative.
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Abfrage mit veränderbarem Kriterium

Beitrag von komma4 »

Du meinst das Dialogfenster der Parameterabfrage.

Code: Alles auswählen

SELECT * FROM "tabellename" WHERE "datum" < :eingabe
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
mlebek
**
Beiträge: 35
Registriert: Mi, 23.05.2007 23:47

Re: Abfrage mit veränderbarem Kriterium

Beitrag von mlebek »

Es funktioniert! Sogar mit dem gleichen Parameter in mehreren Kriterien.

Ich hab jetzt folgende SQL-Anweisung im Einsatz:

Code: Alles auswählen

SELECT COUNT( "ID" ) AS "Mitglieder" FROM "Statistik_a" AS "Statistik_a" WHERE ( "Eintrittsdatum" <= :Datum_eingeben AND ( "Austrittsdatum" > :Datum_eingeben OR "Austrittsdatum" IS NULL ) )
Die Abfrage verlangt beim Start die Eingabe eines Datums, überprüft die korrekte Schreibweise und setzt den eingegebenen Wert dann in alle Kriterien mit gleichnamiger Variable.
Antworten