Seite 1 von 1
[gelöst]Join and SUM
Verfasst: Sa, 07.09.2013 23:29
von marc 70
nabend,
komme hier leider auf keinen grünen Zweig...
hab hier mal zwei Test-Tabellen gemacht als Beispiel.

- tabelle.jpg (39.68 KiB) 12054 mal betrachtet
mit diesem Join schrumpfen die Tabellen auf das wesentliche.

- sql.jpg (26.74 KiB) 12054 mal betrachtet
Jetzt zu meine Frage.
Wie bekomme ich ein SUM auf die Spalte Preis, damit ich solch ein Ergebnis hätte?

- sql2.jpg (16.4 KiB) 12054 mal betrachtet
Summe1 ist der Gesamtpreis von Position1 sowie der Gesamtpreis von Position2
Summe2 Stck*Gesamtpreis von Position1 sowie Stck*Gesamtpreis von Position2
ginge so was zu machen?
Ich bekomme bei meinen versuchen entweder ein Fehler oder die Summe der ganzen Spalte Preis...
gruß marc
Re: Join and SUM
Verfasst: So, 08.09.2013 00:09
von F3K Total
Hallo Marc,
du bist im falschen Forum, OOo Base / SQL wäre richtig.
marc 70 hat geschrieben:ginge so was zu machen?
Sicher, aber es wird keiner Lust haben, deine Daten nachzutippen.
Wie wäre es, wenn Du deine Beispieldatei(en), statt der Bilder hochladen würdest?
Gruß R
Re: Join and SUM
Verfasst: So, 08.09.2013 00:21
von marc 70
Sorry, nach Basic und Java sollte es natürlich nicht hin.
AOO400m3(Build:9702)
HSQLDB
Wie wäre es, wenn Du deine Beispieldatei(en), statt der Bilder hochladen würdest?
Hast recht, macht Sinn:
Code: Alles auswählen
SELECT "Position", "Stck", "Ware", "Preis", "KundenID"
FROM "Tabelle1" INNER JOIN "Tabelle2" ON "Tabelle1"."AuftragID" = "Tabelle2"."AuftragID"
WHERE "Tabelle1"."AuftragID" = 200
Re: Join and SUM
Verfasst: So, 08.09.2013 00:42
von F3K Total
Hi,
Code: Alles auswählen
SELECT "Abfrage1"."Position", "Abfrage1"."Stck", "Abfrage1"."Ware", "Abfrage1"."Preis", "Abfrage1"."Stck_Preis", "Abfrage1"."KundenID", "Abfrage2"."Summe1", "Abfrage2"."Summe2" FROM ( SELECT "Tabelle1"."Position", "Tabelle1"."Stck", "Tabelle1"."Ware", "Tabelle1"."Preis", "Stck" * "Preis" AS "Stck_Preis", "Tabelle2"."KundenID" FROM "Tabelle1", "Tabelle2" WHERE "Tabelle1"."AuftragID" = "Tabelle2"."AuftragID" AND "Tabelle1"."AuftragID" = 200 ) "Abfrage1" JOIN ( SELECT "Position", SUM( "Preis" ) AS "Summe1", SUM( "Stck_Preis" ) AS "Summe2" FROM ( SELECT "Tabelle1"."Position", "Tabelle1"."Stck", "Tabelle1"."Ware", "Tabelle1"."Preis", "Stck" * "Preis" AS "Stck_Preis", "Tabelle2"."KundenID" FROM "Tabelle1", "Tabelle2" WHERE "Tabelle1"."AuftragID" = "Tabelle2"."AuftragID" AND "Tabelle1"."AuftragID" = 200 ) "Abfrage1" GROUP BY "Position" ) "Abfrage2" ON "Abfrage1"."Position" = "Abfrage2"."Position"
OK, das sieht übel aus, ist auch nur das Ergebnis rekusiven Einsetzens.
Hier die Datei:
Mit drei Abfragen gehts leicht.
Gruß R
Re: Join and SUM
Verfasst: So, 08.09.2013 00:53
von marc 70
echt klasse....funktioniert
Danke dir, für die Mühe die du dir gemacht hast.
Hätte nicht gedacht das die Abfrage so lang wird.
Gruß marc
Re: Join and SUM
Verfasst: So, 08.09.2013 00:54
von F3K Total
Muss sie ja nicht, schau dir die drei Abfragen in der Datei an, dann wirds verständlich.
Gruß R
Re: Join and SUM
Verfasst: So, 08.09.2013 01:09
von marc 70
Code: Alles auswählen
SELECT "Position", "Stck", "Ware", "Preis", "Stck_Preis", "KundenID", "Summe1", "Summe2" FROM "Abfrage1" JOIN "Abfrage2" ON "Abfrage1"."Position" = "Abfrage2"."Position"
Das ist natürlich genial und deutlich übersichtlicher einzeln zu bauen und dann zusammen zusetzen.
Habe die Abfragen bis jetzt immer nur direkt in Basic geschrieben.
gruß marc
Re: [gelöst]Join and SUM
Verfasst: So, 08.09.2013 01:22
von F3K Total
Hi,
Code: Alles auswählen
SELECT
"AuftragID",
"Position",
"Stck",
"Ware",
"Preis",
"KundenID",
"Z"."Summe1",
"Z"."Summe2"
FROM "Tabelle1" AS "X"
JOIN "Tabelle2" AS "Y"
ON "X"."AuftragID" = "Y"."AuftragID"
JOIN
(SELECT
"AuftragID",
"Position",
SUM( "Preis" ) AS "Summe1",
SUM( "Stck" * "Preis" ) AS "Summe2"
FROM "Tabelle1"
GROUP BY
"Position",
"AuftragID")
AS "Z"
ON "X"."AuftragID" = "Z"."AuftragID"
AND "X"."Position" = "Z"."Position"
AND "X"."AuftragID" = 200
Das gefällt mir am besten.
Gruß R
Re: [gelöst]Join and SUM
Verfasst: So, 08.09.2013 11:29
von marc 70
Hi F3K Total,
Danke
hat es denn ein Vorteil wenn man mit weniger SELECT´s auskommt? (bei kleinen Tabellen)
gruß marc
Re: [gelöst]Join and SUM
Verfasst: So, 08.09.2013 11:47
von F3K Total
Moin,
marc 70 hat geschrieben:.. hat es denn ein Vorteil wenn man mit weniger SELECT´s auskommt? (bei kleinen Tabellen)
Bei kleinen Tabellen wirst Du den Unterschied vermutlich nicht merken, bei größeren Datenmengen wirkt es sich natürlich auf die Geschwindigkeit aus, wenn man unnötig viele Datensätze abfragt.
Ob es besser ist, die Abfragen zu trennen oder in einer Abfrage zusammenzufassen, kann ich nicht sagen.
Am schnellsten ist auf jeden Fall, wenn du die Daten
nur ansehen und nicht verändern möchtest, statt der Abfragen
Ansichten (Views, Bereich Tabellen) zu verwenden, denn die werden
direkt an die Datenbank gesendet, ohne den Umweg über den BASE-Parser zu nehmen.
Ansichten können keine Parameter verarbeiten.
Du kannst deine Abfragen mit einem rechten Mausklick "Als Ansicht erstellen" in Ansichten überführen.
Ansichten können aber auch genauso mit dem GUI erstellt werden wie Abfragen.
Gruß R
Re: [gelöst]Join and SUM
Verfasst: So, 08.09.2013 13:07
von marc 70
danke, für die Erklärung.
Hab übrigens deine zweite Version genommen.
gruß marc