Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

abfrage in bericht

Begonnen von sashstyle, Dezember 20, 2016, 21:56:49

⏪ vorheriges - nächstes ⏩

sashstyle

Ausgangssituation:

tblFragen (mit 16 "Zeilen" - jede ist eine Frage)
tblAntworten (mit 4 "Zeilen" - jede ist eine Antwort)

diese ergeben die Abfrage mit folgender "Ausgabe":

Anzahl der gegebenen Antworten pro Frage

Bsp:
Frage 1 Antwort 1 Anzahl 3x
Frage 1 Antwort 2 Anzahl 1x
Frage 1 Antwort 3 Anzahl 0x
Frage 2 Antwort 1 Anzahl 1x
Frage 2 Antwort 2 Anzahl 2x
Frage 2 Antwort 3 Anzahl 1x

(verständlich?)

So, nun zu meinem Problem:

Der Bericht kann nur so erstellt werden wie oben aufgeführt, also pro Frage/Antwort/Anzahl eine Zeile

Ich HÄTTE ABER GERN:

a) pro Frage eine Zeile
b) in der Zeile hinter der Frage die Anzahl für Antwort 1 dahinter für Antwort 2 und dann Antwort 3 am Ende

...nur wie?

Vielen Dank für eure Hilfe!


sashstyle

Hi Franz,

Danke für den Link - mit SQL kenn ich mich leider null aus.
Den Code hab ich mir angeschaut und kann damit leider nix anfangen - ich weiß auch nicht wie ich das in einen Bericht einbauen könnte...

Zudem bin ich mir nicht sicher ob die unter dem Link genannte Aufgabenstellung die korrekt für meinen Fall ist - oder "denke" ich falsch?

Lieben Dank
Sascha

sashstyle

gibt es sonst keine hilfe mehr?

DF6GL

Hallo,

naja, um welche Hilfe soll es sich handeln?

Grundkurs kann ich Dir nicht geben...

Aber vielleicht hilft ja schon eine Kreuztabellenabfrage weiter:

Wähle im Ribbon-Band "Erstellen/Abfrageassistent" und im Fenster "Neue Abfrage" den "Kreuztabelleassistent".



MaggieMay

@sashstyle:
Zeige die Strukturen der beteiligten Tabellen, am einfachsten per Screenshot aus dem Beziehungsfenster, dann kann man dir einen konkreten Vorschlag für den Code einer in diesem Fall sicherlich zielführenden Kreuztabellenabfrage machen.
Freundliche Grüße
MaggieMay

sashstyle

Hallo MaggieMay,

hier der Screenshot.

Das mit der Kreuztabellenabfrage klang für mich auch logisch - bzw. hab es mal mit einer PivotTabelle probiert, doch ich bekomm es dann eben nicht so "schön" wie gewünscht in den Bericht.


Ich bin kein SQL´ler und kenne mich damit nicht so aus, dass ich selbst etwas "schreiben" könnte, daher arbeite ich immer gern in den grafischen Oberflächen...

Lieben Dank
Sascha

MzKlMu

#7
Hallo,
wie aus der Gleichheit der Tabellen unschwer zu erkennen ist, sind das zu viele Tabellen. Es gibt ja ein gemeinsames Merkmal für die Fragen, nämlich Ban und Htl.
Daher genügt bei den Fragen ein Feld zur Einordung der Frage als Ban oder Htl. Dieses Unterscheidungsfeld kommt auch in die Tabelle mit den Antworten.

Damit lassen sich alle Antworten eindeutig nach den beiden Fragengruppen unterscheiden. Die Unterscheidung in extra Tabellen ist überflüssig und verkompliziert nur unnötigerweise alle Auswertungen.
Es sind auch einige Beziehungen zu korrigieren. In die Tabelle Befragung muss ein Fremdschlüssel zum Hotel und bei den Antworten muss der FS zum Hotel raus. Dafür muss dort entweder eine Gastnummer rein (wenn der Gast anonym bleibt) oder eine FS zum Gast wenn es für den Gast eine Tabelle gibt. Ich habe mal versucht das in einem Bild (siehe Anhang) darzustellen.

Bevor Du also ans Auswerten gehst, sollte erst mal das Datenmodell geändert werden.

Ich habe gerade festgestellt, dass wir das Datenmodell schon mal diskutiert haben.
Daran kannst Du Dich weiter orientieren.
Gruß Klaus

MaggieMay

Hi,

du hättest auch einfach nur das zeigen können, von dem eingangs die Rede war:
- zwei Tabellen -> Struktur!
- eine Abfrage -> SQL-Code!
Dann hätte man dir einen konkreten Vorschlag machen können und dessen Umsetzung wäre dann ganz allein dein Problem. ;-)
Freundliche Grüße
MaggieMay

sashstyle

Hi zusammen,
(und Sorry falls ich es zu umständlich gepostet hatte!)
gut vielleicht hätte ich in meinem Beziehungsfenster die BAN´s raus lassen sollen - das ist jetzt natürlich umständlicher ... kurz zum Hintergrund: es gibt Fragen fürs HOTEL (Htl) und fürs BANKETT (Ban) - daher ist die Struktur doppelt enthalten.

Wenn es rein nur ums Hotel geht dann sieht das Beziehungsfenster so aus wie der jetzige Anhang.

Klaus, ja das Thema hatten wir schon im Frühjahr mal und ich habe den Sommer überhaupt nichts daran gearbeitet und bin jetzt wieder dran - von dir kam auch die Struktur mit den vier Tabellen (Fragen, mögliche Antworten, Befragungen und GastAntworten) -- diese habe ich (lediglich) meinen Bedürfnissen etwas angepasst :-)

Die Tabelle Hotel ist nicht wichtig!

Ich habe im Hintergrund bei HtlFragen insgesamt 16 Fragen drin stehen und es gibt 4 möglicheAntworten (zufrieden, weniger zufrieden, unzufrieden, unbeantwortet ---> 1,2,3,0).
In meinem Bericht möchte ich jetzt pro Frage eine Zeile (vorne die Frage und dahinter die Anzahl der gegebenen Antworten für 1, 2, 3 und 0) ... ich schaff es nur dass pro Zeile eine Frage und eine Antwort aufgeführt wird...



MaggieMay

Hallo,

versuche es mal hiermit:
TRANSFORM Count(t_bewertungen.bewID) AS AnzahlvonBewertungen
SELECT t_fragen.frageText, Count(t_bewertungen.bewID) AS [Gesamtanzahl Bewertungen]
FROM t_fragen INNER JOIN (t_antworten INNER JOIN t_bewertungen ON t_antworten.antwortID = t_bewertungen.antwortID_f) ON t_fragen.frageID = t_bewertungen.frageID_f
GROUP BY t_fragen.frageText
PIVOT t_antworten.antwortText;

allerdings musst du noch die Namen anpassen.
Ich musste mir erst ein Beispiel erstellen, Kreuztabellenabfragen über mehrere Tabellen schüttel ich nicht einfach so aus dem Ärmel. ;-)
Freundliche Grüße
MaggieMay

sashstyle

hi maggiemay,

super - so, hab es angepasst und es klappt mit diesem code:

TRANSFORM Count(HtlAntworten.HtlAntwortenID) AS AnzahlvonHtlAntwortenID
SELECT HtlFragen.HtlFrageText
FROM HtlFragen INNER JOIN (HtlBefragungen INNER JOIN (HtlAntworten INNER JOIN HtlGastantworten ON HtlAntworten.HtlAntwortenID = HtlGastantworten.HtlAntwortenID_F) ON HtlBefragungen.HtlBefragungID = HtlGastantworten.HtlBefragungID_F) ON HtlFragen.HtlFrageID = HtlGastantworten.HtlFrageID_F
GROUP BY HtlFragen.HtlFrageID, HtlFragen.HtlFrageText
ORDER BY HtlFragen.HtlFrageID
PIVOT HtlAntworten.HtlAntwortenText;


daraus habe ich einen bericht gebastelt - sieht so aus wie ich es wollte!

DANKE!

weiter gehts:

...bekomm ich irgendwo "problemlos" noch folgendes hin:

pro frage - wie oft wurde "eine" antwort gegeben
(keine bestimmte antwortmöglichkeit sondern einfach nur die anzahl der gegebenen antworten

kann ich das noch irgendwie in meinem bericht einbauen?

der bericht sieht im grunde aus wie eine kreuztabelle - ich sollte also nur noch eine letzte spalte mit der anzahl-antworten-für-diese-frage haben...

vielen dank und grüße
sascha