Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

halben Preis

Dieses Thema im Forum "SQLite" wurde erstellt von dz_95, 26 Mai 2021.

  1. dz_95

    dz_95 Neuer Benutzer

    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:

  2. Walter

    Walter Administrator Mitarbeiter

    buch.bestand * buch.preis / 2
     
  3. dz_95

    dz_95 Neuer Benutzer

    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
     
  4. dabadepdu

    dabadepdu Datenbank-Guru

    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.
     
    dz_95 gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden