halben Preis

dz_95

Neuer Benutzer
Beiträge
2
Hallo Leute :)

ich bin Student, und muss für eine Aufgabe folgende Abfrage gestalten.
...Im Ergebnis möchten wir die Buchnummer, den Buchtitel, den Buchpreis sowie den möglichen Umsatz wissen, wenn wir die Bücher um den halben Preis verkaufen, wobei nach dem Buchpreis absteigend sortiert werden soll.

Die Abfrage konnte ich schon gestalten, nur weis ich nicht wie ich den Teil gestalten soll, dass ich den möglichen Umsatz bekomme wenn die Bücher um den halben Preis verkauft werden.

Soweit meine Abfrage:
SELECT Buch.Nr AS "Buchnummer", Buch.Titel AS "Buchtitel", Buch.Preis AS "Buchpreis"
FROM Auftragspos
INNER JOIN Auftrag ON Auftrag.Nr=Auftragspos.Auftragsnummer
INNER JOIN Buch ON Auftragspos.Buchnummer=Buch.Nr
WHERE Buch.Bestand>=100

Im Anhang habe ich noch einen Screenshot von der Datenbank gemacht.

Vielen Dank im Voraus :)
 

Anhänge

  • Bildschirmfoto 2021-05-26 um 11.12.25.png
    Bildschirmfoto 2021-05-26 um 11.12.25.png
    194 KB · Aufrufe: 2
Werbung:
Hallo Walter erstmals danke für deine schnelle Antwort.

ich hab gesehen dass die Abfrage nicht fertig war.
Das wäre meine neue Abfrage:
SELECT Buch.Nr AS "Buchnummer", Buch.Titel AS "Buchtitel", Buch.Preis AS "Buchpreis"
FROM Auftragspos
INNER JOIN Auftrag ON Auftrag.Nr=Auftragspos.Auftragsnummer
INNER JOIN Buch ON Auftragspos.Buchnummer=Buch.Nr
WHERE Buch.Bestand>=100
AND YEAR(Auftrag.Datum)<=2019
GROUP BY Buch.Nr, Buch.Titel, Buch.Preis
ORDER BY Buch.Preis DESC

Wo kann ich deinen Befehl einbauen ? Wenn ich diesen in die Where Bedingung Einbau, wird die Bedingung mit dem Buchbestand gleich&über 100 aufgehoben.
Und wenn ich den "Umsatz erstell, dann kann ich dies mit der Aufzählung machen in dem ich AS "Umsatz" Einbau oder?

lg deniz
 
Werbung:
Du kannst den Teil von Walter direkt an Deine Zeile anhängen, die mit SELECT beginnt.
Aber, dadurch erhälst Du nur die die Preise zu 50% je Titel.

Deine aktualisierte Abfrage macht so wie sie da steht nur selten Sinn.
Du gruppierst (group by) Werte, die sowieso eindeutig sein sollten. Du kannts die Group By Zeile in dem obigen Statement weg lassen und es sollte das gleiche herauskommen. (Solange die 50% Berechnung nicht ergänzt ist)

Was dich interessiert ist ja ein kumulierte oder aggregierter Wert (Umsatz) über eine Reihe von Daten.
Deine gewünschte Aggregation ist mit der Funktion SUM() zu erreichen, die kommt um den Teil von Walter, die Prozent Berechnung, drumrum.

Dann (und erst dann) benötigst Du zwingend das Group by, trage es wieder ein.
Ein sehr gut gemeinter Rat: Schau Dir mal genau an, wie Group By funktioniert und probiere es mit Deinen Daten aus, spiele etwas damit. Ein Select beißt nicht, auch nicht 2 oder 20.
 
Zurück
Oben