[gelöst]Join and SUM

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: [gelöst]Join and SUM

Re: [gelöst]Join and SUM

von marc 70 » So, 08.09.2013 13:07

danke, für die Erklärung.

Hab übrigens deine zweite Version genommen. :D

gruß marc

Re: [gelöst]Join and SUM

von F3K Total » So, 08.09.2013 11:47

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

von marc 70 » So, 08.09.2013 11:29

Hi F3K Total,

Danke :D
hat es denn ein Vorteil wenn man mit weniger SELECT´s auskommt? (bei kleinen Tabellen)

gruß marc

Re: [gelöst]Join and SUM

von F3K Total » So, 08.09.2013 01:22

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: Join and SUM

von marc 70 » So, 08.09.2013 01:09

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: Join and SUM

von F3K Total » So, 08.09.2013 00:54

Muss sie ja nicht, schau dir die drei Abfragen in der Datei an, dann wirds verständlich.
Gruß R

Re: Join and SUM

von marc 70 » So, 08.09.2013 00:53

echt klasse....funktioniert :-D
Danke dir, für die Mühe die du dir gemacht hast.
Hätte nicht gedacht das die Abfrage so lang wird. :shock:

Gruß marc

Re: Join and SUM

von F3K Total » So, 08.09.2013 00:42

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
Dateianhänge
test.odb
(4.71 KiB) 139-mal heruntergeladen

Re: Join and SUM

von marc 70 » So, 08.09.2013 00:21

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
Dateianhänge
test.odb
(4.64 KiB) 100-mal heruntergeladen

Re: Join and SUM

von F3K Total » So, 08.09.2013 00:09

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

[gelöst]Join and SUM

von marc 70 » Sa, 07.09.2013 23:29

nabend,

komme hier leider auf keinen grünen Zweig...
hab hier mal zwei Test-Tabellen gemacht als Beispiel.
tabelle.jpg
tabelle.jpg (39.68 KiB) 12059 mal betrachtet
mit diesem Join schrumpfen die Tabellen auf das wesentliche.
sql.jpg
sql.jpg (26.74 KiB) 12059 mal betrachtet
Jetzt zu meine Frage.
Wie bekomme ich ein SUM auf die Spalte Preis, damit ich solch ein Ergebnis hätte?
sql2.jpg
sql2.jpg (16.4 KiB) 12059 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

Nach oben