Abfrage für Bericht zusammenfassen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Abfrage für Bericht zusammenfassen

Re: Abfrage für Bericht zusammenfassen

von Welpe » Sa, 07.07.2018 07:19

Moin Robert,

das ich die Abfragen verbinden muss, wusste ich nicht. Vielen Dank für deine Hilfe, jetzt funktioniert es.
Die Unterabfragen im Handbuch werde ich mir mal genauer anschauen.

Re: Abfrage für Bericht zusammenfassen

von RobertG » Fr, 06.07.2018 07:41

Hallo Welpe,

in Deiner Unterabfrage sind so mehrere Datensätze enthalten. Das funktioniert nicht. Du musst die Unterabfrage irgendwie mit der äußeren Abfrage verbinden:

Code: Alles auswählen

SELECT "Hersteller", "Modell", 
(SELECT "Anrede" || CHAR( 13 ) || "Vorname" || ' ' || "Nachname" || CHAR( 13 ) || "Straße" || CHAR( 13 ) || "PLZ" || ' ' || "Ort" 
FROM "Adressen" WHERE "Adressen"."ID" = "a"."Adressen_ID") "Kunde" 
FROM "Fahrzeuge" AS "a"
Dieser Code könnte schon reichen. In der Unterabfrage bezieht sich die Adresse direkt auf den Datensatz, der gerade bei der Tabelle "Fahrzeuge" abgefragt wird. Schau einmal im Handbuch unter "korrelierende Unterabfrage" nach.

Gruß

Robert

Abfrage für Bericht zusammenfassen

von Welpe » Do, 05.07.2018 22:33

Moin,

ich bin neu bei OpenOffice und versuche mich an meiner ersten Datenbank. Die Tabellen und Formulare sind erstellt und funktionieren nach meinen Vorstellungen. Nun möchte ich dazu einen Bericht erstellen wie in "Beispiel_Bericht_Rechnung.odb" aus den Beispieldatenbanken Handbuch V60, wo die komplette Adresszeile einer Tabelle zu einem Feld in einer Abfrage zusammengefasst wird.

Die Abfrage aus dem oben genannten Beispiel schaut so aus und mich interessiert, wie das Feld "Kunde" zustande kommt.

SELECT MIN( "ID" ) "ID", SUM( "Anzahl" ) "Anzahl", "Rechnung_ID", "Ware_ID", "Datum", "Ware", "Preis", "Preis" * ( SELECT SUM( "Anzahl" ) FROM "Verkauf" WHERE "Ware_ID" = "a"."Ware_ID" AND "Rechnung_ID" = "a"."Rechnung_ID" ) "Anzahl*Preis", ( SELECT SUM( "Preis" * "Anzahl" ) FROM "Ware", "Verkauf" WHERE "Verkauf"."Rechnung_ID" = "a"."Rechnung_ID" AND "Ware"."ID" = "Verkauf"."Ware_ID" ) "Summe",
( SELECT "Anrede" || CHAR( 13 ) || "Vorname" || ' ' || "Nachname" || CHAR( 13 ) || "Straße" || CHAR( 13 ) || "Postleitzahl" || ' ' || "Ort" FROM "Kunde", "Rechnung" WHERE "Kunde"."ID" = "Rechnung"."Kunde_ID" AND "Rechnung"."ID" = "a"."Rechnung_ID" ) "Kunde", ( SELECT YEAR( "Datum" ) || '-' || "ID" FROM "Rechnung" WHERE "ID" = "a"."Rechnung_ID" ) "Rechnungsnummer" FROM "Verkauf" AS "a", "Rechnung", "Ware" WHERE "Rechnung_ID" = IFNULL( ( SELECT "Integer" FROM "Filter" WHERE "ID" = TRUE ), "Rechnung_ID" ) AND "Rechnung_ID" = "Rechnung"."ID" AND "Ware_ID" = "Ware"."ID" GROUP BY "Rechnung_ID", "Ware_ID", "Datum", "Ware", "Preis"

Ich habe mir zum testen zwei Abfragen erstellt, die einzeln für sich auch funktionieren:

Tabelle "Fahrzeuge" mit den Feldern "ID" "Hersteller" "Modell" "Adressen_ID"
Tabelle "Adressen" mit den Feldern "ID" "Anrede" "Vorname" "Nachname" "Straße" "PLZ" "Ort"

SELECT "Hersteller", "Modell" FROM "Fahrzeuge"
SELECT "Anrede" || CHAR( 13 ) || "Vorname" || ' ' || "Nachname" || CHAR( 13 ) || "Straße" || CHAR( 13 ) || "PLZ" || ' ' || "Ort" FROM "Adressen", "Fahrzeuge" WHERE "Adressen"."ID" = "Fahrzeuge"."Adressen_ID"

Kombiniere ich diese beiden wie im obigen Beispiel, bekomme ich eine Fehlermeldung: Single value expected in Statement...

SELECT "Hersteller", "Modell", (SELECT "Anrede" || CHAR( 13 ) || "Vorname" || ' ' || "Nachname" || CHAR( 13 ) || "Straße" || CHAR( 13 ) || "PLZ" || ' ' || "Ort" FROM "Adressen", "Fahrzeuge" WHERE "Adressen"."ID" = "Fahrzeuge"."Adressen_ID") "Kunde" FROM "Fahrzeuge"

Die Beispielabfrage funktioniert auf meinem System, meine beiden zusammengelegten Abfragen leider nicht. Kann mir jemand helfen und mir einen stubs in die Richtige Richtung geben?

Ich benutze AOo 4.1.5 mit Java 1.8.0_172 unter Windows 10

Nach oben