von bassman » Di, 20.01.2015 23:13
Hallo,
vielen Dank für deine Antwort. Hab ein bisschen probieren müssen, aber jetzt klappt es und ich habs auch verstanden. Es ist nur so, dass ich gehofft habe, dass der Code so einfach ist wie bei access. Gibt es vielleicht noch eine andere Lösung? Ich geb dir mal als beispiel meine Originalabfragen in Access und Base. Der Vorteil bei Access ist, dass man diese Abfrage in der graf. Oberfläche realisieren kann. Darauf kommt es mir eigentlich an (für Schüler geeigneter!!!) Vielleicht fällt dir ja dazu noch was ein. (Aufgabenstellung war: In einem Sportverein die Summe der Mitgliedsbeiträge und die gekauften Getränke für jedes Mitglied zu addieren)
Access
SELECT Mitglieder.M_ID, Sum([Menge]*[Preis]) AS Getränke, Sum(Sportart.Beitrag) AS Beiträge, [Getränke]+[Beiträge] AS [Gesamtkosten]
FROM Sportart INNER JOIN ((Mitglieder LEFT JOIN (Getränke RIGHT JOIN kaufen ON Getränke.G_Nr = kaufen.G_Nr) ON Mitglieder.M_ID = kaufen.M_Nr) INNER JOIN betreiben ON Mitglieder.M_ID = betreiben.Mitglieds_Nr) ON Sportart.Sport_ID = betreiben.Sport_Nr
GROUP BY Mitglieder.M_ID;
Base
SELECT "M_ID", SUM( "Kosten" ) AS "Gesamtkosten" FROM ( SELECT "M_ID", SUM( "Beitrag" ) AS "Kosten" FROM "Mitglieder", "betreiben", "Sportart" WHERE "M_ID" = "Mitglieds_Nr" AND "Sport_Nr" = "Sport_ID" GROUP BY "M_ID" UNION ALL SELECT "M_ID", SUM( "Menge" * "Preis" ) AS "Kosten" FROM "kaufen", "Getränke", "Mitglieder" WHERE "G_Nr" = "G_ID" AND "M_Nr" = "M_ID" GROUP BY "M_ID" ) GROUP BY "M_ID" ORDER BY "M_ID"
Danke und Gruß
Hallo,
vielen Dank für deine Antwort. Hab ein bisschen probieren müssen, aber jetzt klappt es und ich habs auch verstanden. Es ist nur so, dass ich gehofft habe, dass der Code so einfach ist wie bei access. Gibt es vielleicht noch eine andere Lösung? Ich geb dir mal als beispiel meine Originalabfragen in Access und Base. Der Vorteil bei Access ist, dass man diese Abfrage in der graf. Oberfläche realisieren kann. Darauf kommt es mir eigentlich an (für Schüler geeigneter!!!) Vielleicht fällt dir ja dazu noch was ein. (Aufgabenstellung war: In einem Sportverein die Summe der Mitgliedsbeiträge und die gekauften Getränke für jedes Mitglied zu addieren)
Access
SELECT Mitglieder.M_ID, Sum([Menge]*[Preis]) AS Getränke, Sum(Sportart.Beitrag) AS Beiträge, [Getränke]+[Beiträge] AS [Gesamtkosten]
FROM Sportart INNER JOIN ((Mitglieder LEFT JOIN (Getränke RIGHT JOIN kaufen ON Getränke.G_Nr = kaufen.G_Nr) ON Mitglieder.M_ID = kaufen.M_Nr) INNER JOIN betreiben ON Mitglieder.M_ID = betreiben.Mitglieds_Nr) ON Sportart.Sport_ID = betreiben.Sport_Nr
GROUP BY Mitglieder.M_ID;
Base
SELECT "M_ID", SUM( "Kosten" ) AS "Gesamtkosten" FROM ( SELECT "M_ID", SUM( "Beitrag" ) AS "Kosten" FROM "Mitglieder", "betreiben", "Sportart" WHERE "M_ID" = "Mitglieds_Nr" AND "Sport_Nr" = "Sport_ID" GROUP BY "M_ID" UNION ALL SELECT "M_ID", SUM( "Menge" * "Preis" ) AS "Kosten" FROM "kaufen", "Getränke", "Mitglieder" WHERE "G_Nr" = "G_ID" AND "M_Nr" = "M_ID" GROUP BY "M_ID" ) GROUP BY "M_ID" ORDER BY "M_ID"
Danke und Gruß