Shorti Geschrieben 19. April 2010 Teilen Geschrieben 19. April 2010 Hallo zusammen, momentan sitz ich im wahrsten Sinne des Wortes auf dem Schlauch. Ich muss eine (eigentlich einfache?) SQL Abfrage schreiben, aber es fehlt der entscheidende Tipp :floet: Hier mal die Aufgabe: "Ermitteln Sie den Bestandswert (Ausdruck: Einzelpreis * Lagerbestand) je Lieferant. Die Lieferanten mit den Nummern 1, 2 und 3 sollen nicht berücksichtigt werden. Ebenso sollen alle Auslaufartikel unberücksichtigt bleiben. Tabelle Artikel" Hier mein Lösungsansatz: SELECT A.Lieferanten_Nr, (A.Einzelpreis * A.Lagerbestand) AS Bestandswert FROM Artikel AS A WHERE A.Lieferanten_Nr NOT IN (1,2,3); Soweit so gut. Dummerweise wird momentan noch teilweise ein Lieferant x mal ausgegeben und jedesmal mit unterschiedlichen Bestandswerten, Irgendwie müsste ich doch in die Abfrage noch ein GROUP BY und/oder HAVING reinfrickeln, oder? Btw: Auslaufartikel werden als Ja/Nein Feld gespeichert. Anbei eine Übersicht über die Datenbank-Beziehungen (vielleicht hilfts?) Vielen Dank für alle erbrachten Mühen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 19. April 2010 Teilen Geschrieben 19. April 2010 Irgendwie müsste ich doch in die Abfrage noch ein GROUP BY und/oder HAVING reinfrickeln, oder? GROUP BY ist richtig. und was gruppierst du? ja richtig, steht in der frage ... Bestandswert JE LIEFERANT... reicht das als tipp? ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Shorti Geschrieben 19. April 2010 Autor Teilen Geschrieben 19. April 2010 Hallo, erstmal danke für den Tipp, aber so richtig weiter bin ich leider immer noch nicht :hells: Hänge ich an das, was ich momentan habe, ein GROUP BY dran, spuckt mir Access eine Fehlermeldung aus, mit der ich nicht wirklich was anfangen kann, bzw nicht weiß wie man das lösen kann ^^ SELECT A.Lieferanten_Nr, (A.Einzelpreis * A.Lagerbestand) AS Bestandswert FROM Artikel AS A WHERE A.Lieferanten_Nr NOT IN (1,2,3) GROUP BY A.Lieferanten_Nr; Dann kommt folgende Fehlermeldung: "Sie wollten eine Abfrage ausführen, die den angegebenen Ausdruck 'A.Einzelpreis*A.Lagerbestand' nicht als Teil der Aggregatfunktion einschließt." :upps Sowas nennt man wohl Brainlag ^^ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
_n4p_ Geschrieben 19. April 2010 Teilen Geschrieben 19. April 2010 dir fehlt etwas wichtiges. der bestandswert ist doch die SUMME von lagerbestand * preis aller artikel. Acess will alle spalten die nicht teil des aggregats sind in der GROUP BY klausel haben. da du gar keine aggregatfunktion benutzt kommt die meldung. SELECT A.Lieferanten_Nr, [COLOR="Red"]SUM[/COLOR](A.Einzelpreis * A.Lagerbestand) AS Bestandswert FROM Artikel AS A WHERE A.Lieferanten_Nr NOT IN (1,2,3) GROUP BY A.Lieferanten_Nr; wie du die auslaufartikel ausschließt sollte ja nicht so problematisch sein Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Shorti Geschrieben 19. April 2010 Autor Teilen Geschrieben 19. April 2010 Jup, habs jetzt hinbekommen. Vielen Dank ! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.