Veröffentlicht 19. April 201015 j 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
19. April 201015 j 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? ^^
19. April 201015 j 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 ^^
19. April 201015 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.