Auswertung in Abfrage?!

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Thorn
Beiträge: 5
Registriert: Mi, 09.07.2008 10:24

Auswertung in Abfrage?!

Beitrag von Thorn »

Hi,

ich habe schon einiges hier durchsucht, aber nicht das passende gefunden (oder ich war zu blöd) ...

Folgende Aufgabe:
In einer Tabelle halte ich die Anwesenheit von Teilnehmern eines 20-tägigen Kurses pro Tag nach ... d.h. wenn der Teilnehmer da ist trage ich "anwesend" ein sonst bleibt das Feld leer ... nun möchte ich nach Abschluss des Kurses auswerten/berechnen wie oft die einzelnen Teilnehmer anwesend waren ... wenn ich es bisher richtig verstanden habe kann ich diese Auswertung in einer Abfrage machen ... mit mathematischen Berechnungen komme ich inzwischen halbwegs klar ... aber jetzt muss ich ja irgendwie prüfen in wievielen Feldern meiner Tabelle (Tag 1, Tag 2, ... Tag 20) der Text "anwesend" steht und das numerisch aufaddieren ...

... kann mich jemand auf die richtige Spur setzen?

EDIT: okay ... ich hab's allein hinbekommen - nicht elegant aber klappt 8)
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Auswertung in Abfrage?!

Beitrag von komma4 »

Zeige uns mal Deine Lösung, dann reden wir über Eleganz.
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)
Thorn
Beiträge: 5
Registriert: Mi, 09.07.2008 10:24

Re: Auswertung in Abfrage?!

Beitrag von Thorn »

okay ... Abfrage - bearbeiten ... eine freie Spalte nehmen und als "Feld":

( NVL( ASCII( "Day 1" ), 0 ) + NVL( ASCII( "Day 2" ), 0 ) + NVL( ASCII( "Day 3" ), 0 ) + ... NVL( ASCII( "Day 19" ), 0 ) + NVL( ASCII( "Day 20" ), 0 ) ) / 97

eintragen (mit Copy/Paste in der SQL Ansicht geht's schneller), um den Bandwurm später in einen Bericht zu kriegen habe ich ihm einen Alias gegeben ...

ASCII ( character_expression ) ... Returns the ASCII code value of the leftmost character of a character expression. (bei mir "97" für das "a", bzw. irgendwas für ein leeres Feld)
nvl(expr_1, expr_2) ... Returns expr_2 if expr_1 is null and expr_1 otherwise. (da ASCII bei einem leeren Feld keine saubere "0" lieferte, die ich addieren kann bin ich über den NVL gegangen um eine saubere "0" zu bekommen) ...

Ich bin mir ziemlich sicher, dass es einfacher/schneller geht ... wenn es jemand weiss ...
Antworten