SQL Syntax Probleme bei einer Abfrage.

Status
Für weitere Antworten geschlossen.

Steve89

Ensign
Registriert
Apr. 2009
Beiträge
245
Hi Leute,

und zwar komme ich leider nicht weiter ich muss eine Abfrage machen die Aufgabenstellung lautet:

Ermittlung der Umsätze je Warengruppe im Jahr 2015.
Anzuzeigen ist der Umsatz je Warengruppe und die Warengruppen_ID.

'Ich weiß echt nicht mehr weiter. Könnte mir eventuell jemand helfen?

Danke im Voraus.

Gruß

Steve
 
ich komme gerade echt nicht weiter die anderen aufgaben gingen einigermaßen aber die echt kp
 
das ist eine IHK-Prüfungsaufgabe habe leider keine Lösung zur Hand :/
Ergänzung ()

Bei der Kompletten Aufgabe :(
 
Also... Drahminedum hat eigentlich schon alles gesagt. Wenn du selbst nicht drauf kommst, was er damit meinte, solltest du deinen Lehrer noch mal fragen ob er die letzten Sachen wiederholen kann.
 
Zur not googlest Du mal was GROUP BY bedeutet - ist wirklich ganz einfach. So viel Initiative sollte schon drin sein...
 
Hexxxer76 schrieb:

Das hätte ich auch machen können. Ich hätte ihm auch das komplette Statement ausformulieren können - aber er sollte wenigstens genug Initiative aufbringen, eine Suchmaschine anzuwerfen.

Lernen besteht nicht daraus, dass man alles fix fertig vorgekaut bekommt, noch dazu wenn es wirklich triviale Sachen sind und der entscheidende Tipp bereits gegeben wurde.
 
Danke @Hexxxer76 ich werde mir da mal das Statement zusammenbasteln.
 
Ist das so richtig?

SELECT SUM (Umsatz), Produkt.VKPreis_pro Produkt, Produkt.WarengruppeID, Kauf_Pos.Menge, Kauf.Datum
FROM ((Produkt INNER JOIN Kauf_Pos ON Produkt.Menge = Produkt.Menge)
INNER JOIN Kauf ON Produkt.Datum = Kauf.Datum) WHERE Verkaufsdatum BETWEEN 01.01.2015 AND 31.2.2015 GROUP BY Warengruppe_ID;

jemand eventuell ne andere Lösung?

Danke

Gruß
 
Ohne Datenbankschema wird Dir das niemand beantworten können. Ich vermute aber das klappt so nicht. :) Wie wärs, wenn Du Dir eine entsprechende Datenbank mal anlegst und ausprobiert? Access, SQLExpress, MySQL, egal. Dann hättest Du den Vorteil, dass Du auch mal ein bißchen Praxis bekomms.t
 
Ja ich installiere mir Access Ausbilder möchte unbedingt dieses Statemant haben und mir fällt dazu auch nichts mehr ein IMG_4903 (1).jpg
Ergänzung ()

Hier dann mal das Datenbankschema
Ergänzung ()

Kann mir da bitte einer Helfen ???
 
Also mal ein paar Hinweise zu Korrektor:
Es gibt keine Spalte Umsatz, also wird SELECT SUM (Umsatz) nicht funktionieren.
Du solltest nur Felder selektieren, Die Du auch gruppierst.
Du joinst über die Produktmenge und und über das Datum, das ist Unsinn. Du musst Kauf, Kauf_Pos, Produkt und Warengruppe über die jeweiligen Primär- und Fremdschlüssel joinen.
Dann kannst Du nach der Warengruppe gruppieren und über SUM(VK_Preis_pro_Produkt) den Umsatz pro Warengruppe selektieren.
Ein Datum muss in Anführungsstrichen stehen, aber das Syntaxfeinheiten, probier erstmal die Logik zu verstehen.

Probier das mal umzusetzen und poste Dein Ergebnis.

Fang auch evtl erstmal mit Selects, Slects von gejointen Tabellen an. Dann Gruppierungen dazu, dann Filter dazu, etc. Es ist einfacher klein anzufangen und sich die Ergebnisse zu betrachten und dass dann zu erweitern. Kaum einer schüttelt komplexere Statements mal eben aus dem Ärmel.

Edit: Wenn Du selbst keine Datenbank hast, kannst Du z.B. auch hier online üben: https://www.w3schools.com/SQl/trysql.asp?filename=trysql_select_all Ist zwar eine andere Datenbank, aber die Prinzipien sind gleich.

Edit2: Ich sehe gerade, man kann in der Datenbank Dein Beispiel sogar nachbauen, die Tabellen und Spalten heißen nur anders. :)

Edit: Hier mal der Aufbau anhand des Online Beispiels:

1. Die Tabelle Orders
SELECT * FROM ORDERS o;

2. Die Tabelle Orders gejoint mit Mit Order Details:
SELECT * FROM ORDERS o Inner JOIN OrderDetails od on o.OrderID = od.OrderId;

3. Alle Tabellen gejoint, die benötigte Informationen brauchen:
SELECT * FROM ORDERS o Inner JOIN OrderDetails od on o.OrderID = od.OrderId Inner Join Products p on od.ProductID = p.ProductId Inner Join Categories c on p.CategoryId = c.CategoryId;

3. Filter setzen:
SELECT * FROM ORDERS o Inner JOIN OrderDetails od on o.OrderID = od.OrderId Inner Join Products p on od.ProductID = p.ProductId Inner Join Categories c on p.CategoryId = c.CategoryId where o.OrderDate Between '1997-01-01' and '1997-12-31';

4. Gruppieren und summieren:
SELECT c.CategoryName, Sum(p.Price) as Umsatz FROM ORDERS o Inner JOIN OrderDetails od on o.OrderID = od.OrderId Inner Join Products p on od.ProductID = p.ProductId Inner Join Categories c on p.CategoryId = c.CategoryId where o.OrderDate Between '1997-01-01' and '1997-12-31'group by c.CategoryName;
 
Zuletzt bearbeitet:
Ich danke dir ich werde es nach her mal versuchen umzusetzen danke
 
Gerade noch gesehen, die Artikelanzahl pro Bestellzeile muss natürlich auch noch beachtet werden...

SELECT c.CategoryName, Sum(od.Quantity * p.Price) as Umsatz FROM ORDERS o Inner JOIN OrderDetails od on o.OrderID = od.OrderId Inner Join Products p on od.ProductID = p.ProductId Inner Join Categories c on p.CategoryId = c.CategoryId where o.OrderDate Between '1997-01-01' and '1997-12-31'group by c.CategoryName;
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben