Bericht aus Abfragen generieren

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Kreon
Beiträge: 4
Registriert: Mo, 04.12.2006 18:39

Bericht aus Abfragen generieren

Beitrag von Kreon »

Hallo zusammen,

ich habe bisher leider keine Lösung gefunden. Daher eröffne ich mal ein neues Thema.

Wenn ich aus einer vorhandenen Abfrage einen Bericht generieren lassen will bekomme ich folgende Fehlermeldung: Die Felder von Abfrage1 konnten nicht ermittelt werden.

Die Abfrage berechnet mittels AVG Durchschnittswerte aus einer Tabelle.

Meine Frage: Gibt es eine Möglichkeit solche "dynamischen" Abfragen in Berichten zu benutzen?

Vielen Dank schon mal.

Der Kreon
Strat49
**
Beiträge: 40
Registriert: Fr, 15.09.2006 13:19
Wohnort: Bremen
Kontaktdaten:

Beitrag von Strat49 »

Hallo Kreon,

"dynamische(?)" Abfragen können bestimmt auch in Berichten ausgegeben werden, wobei - bedauerlich - die Berichtsfunktion in OOo Base noch nicht so ideal gelöst ist. Hier wird es sicherlich in kommenden Versionen noch Verbesserungen geben.

Was genau verstehst du unter dynamischen Abfragen? M.E. sind alle Abfragen hinsichtlich solcher Daten, die veränderlich sind und sich geändert haben, dynamisch. Dies ist ja gerade das Wesen und der Vorteil von Abfragen, dass immer gerade der aktuelle Datenbestand analysiert wird.

Bitte gebe einmal kurz deine Tabellenfelder und deine Abfrage bekannt. Sonst kann man dein Problem nicht nachvollziehen. :wink:

Gruß Norbert
OOo 2.0.4 unter Suse Linux 10.0
Kreon
Beiträge: 4
Registriert: Mo, 04.12.2006 18:39

Beitrag von Kreon »

Hallo Norbert,

es handelt sich dabei um die Auswertung eines Fragebogens. Pro Tabelle gibt es 5 Fragen, die Antworten können von -3 bis +3 gehen.

Tabelle Aufgabenangemessenheit: F1, F2, ... , F5, PNr

Die Abfrage berechnet den Durchschnittswert aller Antworten je Frage. Sie lautet:

Code: Alles auswählen

SELECT ROUND(AVG(Frage1),0) AS AVG_F1, ROUND(AVG(Frage2),0) AS AVG_F2, ROUND(AVG(Frage3),0) AS AVG_F3, ROUND(AVG(Frage4),0) AS AVG_F4, ROUND(AVG(Frage5),0) AS AVG_F5

FROM Aufgabenangemessenheit, Person 
WHERE Aufgabenangemessenheit.PersonNr = Person.PersonNr and Person.Institution='ZPM'
Der Berichtsassistent kann leider nicht herausfinden, wie die Felder AVG_F1 usw. heißen.

Gibt es da vielleicht einen anderen Weg?

Vielen Dank schon mal.

Grüße,
Kreon
Strat49
**
Beiträge: 40
Registriert: Fr, 15.09.2006 13:19
Wohnort: Bremen
Kontaktdaten:

Beitrag von Strat49 »

Hallo Kreon,

so ganz habe ich noch nicht verstande, wie die Tabellen und die Felder aufgebaut sein sollen, daher hier zunächst meine Vorstellung (in Calc aufgebaut):

Tabelle1Bewertung Tabelle2 Bewertung Tabelle3 Bewertung
Frage1 -3 Frage1 -1 Frage1 -2
Frage2 -2 Frage2 0 Frage2 -1
Frage3 1 Frage3 1 Frage3 0
Frage4 2 Frage4 2 Frage4 1
Frage5 3 Frage5 3 Frage5 3

zu jeder Tabelle z.B. fünf abgegebene Bewertungen, aus denen der Durchschnitt berechnet wird; also z.B.

Tabelle1 Bewertung1 Bewertung2 Bewertung3 Bewertung4 Bewertung5 Durchschnitt
Frage1 -3 -2 1 2 3 0,2
Frage2 -2 -1 0 2 3 0,4
Frage3 -3 1 2 2 3 1
Frage4 u.s.w.
Frage5
OOo 2.0.4 unter Suse Linux 10.0
Strat49
**
Beiträge: 40
Registriert: Fr, 15.09.2006 13:19
Wohnort: Bremen
Kontaktdaten:

Beitrag von Strat49 »

Sorry, versehentlich zu schnell Absenden gedrückt, daher noch einmal:

Hallo Kreon,

so ganz habe ich noch nicht verstanden, wie die Tabellen und die Felder aufgebaut sein sollen, daher hier zunächst meine Vorstellung (in Calc aufgebaut):

Tabelle1Bewertung Tabelle2 Bewertung Tabelle3 Bewertung
Frage1 -3 Frage1 -1 Frage1 -2
Frage2 -2 Frage2 0 Frage2 -1
Frage3 1 Frage3 1 Frage3 0
Frage4 2 Frage4 2 Frage4 1
Frage5 3 Frage5 3 Frage5 3

zu jeder Tabelle z.B. fünf abgegebene Bewertungen, aus denen der Durchschnitt berechnet wird; also z.B.

Tabelle1 Bewertung1 Bewertung2 Bewertung3 Bewertung4 Bewertung5 Durchschnitt
Frage1 -3 -2 1 2 3 0,2
Frage2 -2 -1 0 2 3 0,4
Frage3 -3 1 2 2 3 1
Frage4 u.s.w.
Frage5

Sorry, habe eine entsprechende und richtige Formatierung nicht hinbekommen :oops:

Ich denke, Du untersuchst z.B. Evaluierungsbögen, die von einer Vielzahl von Teilnehmern abgegeben werden und in denen zu verschiedenen Themen = Tabellen Bewertungen nach verschiedenen Kriterien = -3 bis +3 abgegeben werden. Du möchstest nun den Durchschnitt aller Bewertungen zu dem jeweiligen Thema. Stimmt meine Idee soweit?

Du hast zwar einen SQL-Code geschrieben. Mir ist jedoch auch nicht klar, wie die einzelnen Datensätze aufgebaut sein sollen. Bitte gebe doch mal die genauen Tabellen- und dazugehörenden Feld-Namen an.

In der WHERE-Zeile gibst du eine doppelte Relation an: Der Wert in der Tabelle "Aufgabenangemessenheit" Spalte "Person" soll übereinstimmen mit dem Wert in der Tabelle "Person" Spalte "PersonNr" und dem Wert in der Tabelle "Person" Spalte "Institution" und soll gleichzeitig dem Wert "ZPM" entsprechen? Ich bin kein SQL-Profi, aber ich glaube, das geht nicht. Das Gleichheitszeichen vergleicht m.W. auch nur Zahlenwerte, was jedenfalls für "ZPM" nicht stimmt. Vielleicht liegt es ja bereits an dieser Zeile.

Gruß Norbert
OOo 2.0.4 unter Suse Linux 10.0
Kreon
Beiträge: 4
Registriert: Mo, 04.12.2006 18:39

Beitrag von Kreon »

Hallo Norbert,

Du hast es richtig verstanden. Jede Tabelle stellt einen Bereich im Fragebogen dar, der aus jeweils 5 Fragen besteht. Die Befragten stammen aus unterschiedlichen Abteilungen. Meine SQL Abfrage gibt nur die Ergebnisse der Abteilung ZPM aus.

Um es einfach zu halten bleiben wir bei einer Tabelle z.b. Aufgabenangemessenheit. 10 Leute haben z.b. die Fragen 1-5 mit Werten von -3 bis 3 beantwortet. Ich möchte den Durchschnitt pro Frage.

Meine SQL Abfrage funktioniert genau so wie ich das will. Nur wenn ich sie in einen Bericht einbauen möchte, gibt es die oben beschriebenen Probleme.

Grüße,
Kreon
Kreon
Beiträge: 4
Registriert: Mo, 04.12.2006 18:39

Beitrag von Kreon »

Nachtrag:

Die Verknüpfung in der WHERE Klausel muss so sein, da zusätzliche Daten wie Abteilung, Alter, Berufsgruppe, etc. in einer extra Tabelle gespeichert sind.

Gruß,
Kreon
Antworten