SQL Grundkurs 2: Aufgaben und Lösungen

Beispiel 3: Mathematische Berechnung

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Zeigen Sie für alle Artikel den aktuellen sowie den um 7% erhöhten Verkaufspreis an. Versehen Sie die zwei Preise mit Aliasnamen, die diese besser unterscheidbar machen.

Transkript

Und weiter geht es mit dem dritten Beispiel zu SELECT und FROM. Diesmal soll ein mathematischer Ausdruck verwendet werden, das heißt es soll eine Berechnung mit numerischen Spalten erfolgen. Wir verwenden für dieses Beispiel die Tabelle artikel. Hier soll nicht nur die Artikelnummer und die Bezeichnung angezeigt werden, wie Sie hier im Ergebnis sehen, sondern neben dem aktuellen Preis, auch ein neuer Preis. Dieser neue Preis soll berechnet werden aus dem aktuellen, indem er um 7% erhöht wird. Um sicher zu gehen, dass hier keine Bruchteile von Cent herauskommen, soll dieser neue Wert auch auf zwei Nachkommastellen gerundet werden, und zwar kaufmännisch gerundet, dazu benötigen Sie eine entsprechende Rundungsfunktion. Ich glaube, dieses Beispiel wird für Sie nicht allzu schwierig sein, und deshalb können Sie gleich daran gehen, diese Aufgabenstellung zu lösen. Pausieren Sie nun das Video und lösen Sie die Aufgabe. Wenn Sie damit fertig sind, fahren Sie mit dem Video fort und sehen Sie sich meine Musterlösung an. Betrachten wir nun gemeinsam die Lösung. Ich hoffe, Sie haben das gewünschte Ergebnis erreichen können. Aus der Tabelle artikel, FROM wawi.artikel, holen wir uns über die SELECT-Klausel nicht nur Artikelnummer und Bezeichnung, sondern vorläufig auch gleich einmal den Verkaufspreis. Mit dem Zusatz AS und dem Aliasnamen preis_alt, wird der Aliasname als Überschrift für diese Spalte gesetzt. Da der Unterstrich nicht als Sonderzeichen gilt, ist es möglich den Aliasnamen ohne doppelte Hochkommas, so wie hier, zu verwenden. Würden Sie hier ein Sonderzeichen oder ein Leerzeichen einsetzen, müsste dieses ja unter doppelte Hochkommas gesetzt werden. Als neue Spalte multiplizieren wir den Verkaufspreis mit dem Wert mal 1,07, um ihn um 7% zu erhöhen. Achten Sie darauf, dass wir hier die englische Schreibweise verwenden müssen, und also einen Punkt hier als Komma separat einsetzen. Mit der Funktion ROUND, die wie wir gleich sehen werden glücklicherweise bei allen drei Datenbanksystemen dieselbe Syntax aufweist, runden wir das Ergebnis auf zwei Nackommastellen genau. Über den Aliasnamen AS preis_neu, erreichen wir diese Überschrift. Betrachten wir uns nun dasselbe Ergebnis mit MySQL. Auch hier können wir den neuen Preis mit dieser Anweisung berechnen. ROUND(vkpreis * 1.07, 2) - um auf zwei Kommastellen zu runden - AS preis_neu, vielleicht fällt Ihnen hier im Ergebnis auf, dass wir eine unterschiedliche Darstellung der Zahlen haben. Prinzipiell ist es in der Praxis nicht so relevant, welches Format numerische Werte bei der Ausgabe in SQL aufweisen. SQL soll Werte liefern, korrekte Werte, und keine Formate. Wenn Sie aber möchten, können wir das hier in einer einfachen Weise korrigieren. Wodurch kommen die Unterschiede überhaupt zustande? Das hängt mit den unterschiedlichen numerischen Datentypen zusammen. Verkaufspreis ist zum Beispiel hier bei MySQL als decimal mit vier Nachkommastellen definiert, und daher wird es hier auch so angezeigt. Durch die Berechnung mit anderen numerischen Werten, die keinen expliziten Datentyp aufweisen, kann das Ergebnis anders ausfallen, und daher auch anders formatiert ausgegeben werden. Wenn Sie hier eine Angleichung haben möchten, dann besteht die Möglichkeit das Ergebnis wieder mit einer entsprechenden Funktion in den ursprünglichen Datentyp dieser Spalte zu konvertieren. In MySQL können Sie das zum Beispiel mit der Funktion CAST erledigen. Mit der Funktion CAST können Sie einen beliebigen Ausdruck oder Wert mit dem Zusatz AS in einen Zieldatentyp, in dem Fall decimal(10, 4) umwandeln. Wie komme ich auf diesen Datentyp? Ich habe hier im Navigator die Spalte Verkaufspreis in der Artikeltabelle markiert, und kann hier auslesen, dass diese mit genau diesem Datentyp definiert wurde. Führen wir nun diese Anweisung aus, bekommen wir exakt die gleiche formatierte Darstellung. Ähnliches sehen wir beim Microsoft SQL Server. Auch hier schaut das ursprüngliche Beispiel in der Lösung gleich aus. Ich führe es hier noch einmal aus und Sie sehen, die Anweisung, die wir schon zweimal gesehen haben, liefert uns dieses Ergebnis. Hier ist der optische Unterschied noch auffälliger, weil auch hier aus demselben Grund unterschiedliche Datentypen aufeinandertreffen, die alle einen numerischen Typ aufweisen. Zum Beispiel ist der Verkaufspreis vom Typ money, ein eigener Währungsdatentyp beim SQL Server. Wie könnten wir das eruieren? Wenn wir das wissen wollten, würden wir hier hineinschauen, im Objekt-Explorer unter die Spalten, dann sehen wir hier beim vkpreis sogar smallmoney, nicht money. Der hat einen kleineren Wertebereich als money, ungefähr plus-minus 214 000, was ja völlig ausreichend ist, und belegt daher auch weniger Speicherplatz. Und auch hier bekommen wir durch die Berechnung ein anderes Format. Die Lösung schaut gleich aus wie bei MysQL, Sie sehen die Funktion CAST hat dieselbe Syntax. CAST als Zieldatentyp, nur das an dieser Stelle money verwendet wird, hier ändere ich auch hier auf smallmoney, das wäre das exakte Pendant umstellen, und wenn ich jetzt diese Anweisung ausführe, sehen wir, dass wir die gleiche Formatierung im Ergebnis haben. Und auch der Bag im Editor, den wir gerade gesehen haben vorhin, das hier als Kommaseparator kein Komma, sondern ein Punkt verwendet worden ist, ist damit optisch zumindest hier wieder ausgeglichen. Prinzipiell also wird die Aufgabenstellung in allen drei Systemen auf die gleiche Art und Weise mit derselben Anweisung gelöst, Unterschiede gibt es nur dann, wenn wir im kleinen Bereich vielleicht noch etwas kosmetisch nachhelfen möchten. Ich hoffe, Sie sind auch auf dieses Ergebnis gekommen.

SQL Grundkurs 2: Aufgaben und Lösungen

Vertiefen Sie Ihre SQL-Kenntnisse. In diesem Workshop erhalten Sie zahlreiche Beispielaufgaben, die Sie selbst lösen können. Anschließend zeigt Ihnen der Trainer die Lösung.

7 Std. 41 min (61 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieses Training setzt SQL-Kenntnisse voraus, wie sie beispielsweise in „SQL lernen und anwenden“ vermittelt werden.

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!