Benutzer-Werkzeuge

Webseiten-Werkzeuge


computer:tutorials:sql:bestellung-loesung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

computer:tutorials:sql:bestellung-loesung [2013/05/13 22:04] (aktuell)
christian angelegt
Zeile 1: Zeile 1:
 +Gerät mit folgenden Eckdaten suchen:
 +  * nicht ausgeliehenes Gerät
 +  * 2 GHz oder mehr CPU-Takt
 +  * RAM größer oder gleich 2 GB
  
 +<​code>​
 +mysql> SELECT * FROM geraete WHERE G_Ausgeliehen = 0 AND G_CPU > 2000 AND G_RAM >= 2048;
 ++------+----------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+
 +| G_Nr | G_Bezeichnung ​ | G_Kaufdatum | G_Seriennummer | G_CPU | G_RAM | G_HDD | G_TFT | G_Preis | G_Ausgeliehen |
 ++------+----------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+
 +|    2 | Thinkpad X200  | 2008-08-01 ​ | FK12ZKM1 ​      ​| ​ 2260 |  2048 |   160 |    12 |      15 |             0 |
 +|    3 | Thinkpad T61p  | 2008-08-01 ​ | NT18MSW8 ​      ​| ​ 2600 |  4096 |   200 |  15.4 |      20 |             0 |
 +|    4 | Thinkpad R500  | 2009-09-01 ​ | WT64XBC4 ​      ​| ​ 2800 |  4096 |   320 |  15.4 |      23 |             0 |
 +|    5 | Thinkpad T430s | 2012-11-01 ​ | NM78GFJ7 ​      ​| ​ 2400 |  8192 |   500 |    14 |      29 |             0 |
 ++------+----------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+
 +</​code>​
 +
 +SQL-Befehl abändern, damit auch der Wochenpreis (//5 Werktage//) angezeigt wird - Herr Mustermann nennt ein Limit von 100 EUR:
 +<​code>​
 +mysql> SELECT *, (G_Preis*5) AS "Preis pro Woche" FROM geraete WHERE G_Ausgeliehen = 0 AND G_CPU > 2000 AND G_RAM >= 2048;
 ++------+----------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+-----------------+
 +| G_Nr | G_Bezeichnung ​ | G_Kaufdatum | G_Seriennummer | G_CPU | G_RAM | G_HDD | G_TFT | G_Preis | G_Ausgeliehen | Preis pro Woche |
 ++------+----------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+-----------------+
 +|    2 | Thinkpad X200  | 2008-08-01 ​ | FK12ZKM1 ​      ​| ​ 2260 |  2048 |   160 |    12 |      15 |             0 |              75 |
 +|    3 | Thinkpad T61p  | 2008-08-01 ​ | NT18MSW8 ​      ​| ​ 2600 |  4096 |   200 |  15.4 |      20 |             0 |             100 |
 +|    4 | Thinkpad R500  | 2009-09-01 ​ | WT64XBC4 ​      ​| ​ 2800 |  4096 |   320 |  15.4 |      23 |             0 |             115 |
 +|    5 | Thinkpad T430s | 2012-11-01 ​ | NM78GFJ7 ​      ​| ​ 2400 |  8192 |   500 |    14 |      29 |             0 |             145 |
 ++------+----------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+-----------------+
 +</​code>​
 +
 +SQL-Befehl entsprechend abändern, sodass nach der CPU absteigend sortiert wird - nur das erste Ergebnis soll angezeigt werden:
 +<​code>​
 +mysql> SELECT *, (G_Preis*5) AS "​PreisWoche"​ FROM geraete WHERE G_Ausgeliehen = 0 AND G_CPU > 2000 AND G_RAM >= 2048 AND (G_Preis*5) <= 100 ORDER BY G_CPU DESC LIMIT 0,1;
 ++------+---------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+------------+
 +| G_Nr | G_Bezeichnung | G_Kaufdatum | G_Seriennummer | G_CPU | G_RAM | G_HDD | G_TFT | G_Preis | G_Ausgeliehen | PreisWoche |
 ++------+---------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+------------+
 +|    3 | Thinkpad T61p | 2008-08-01 ​ | NT18MSW8 ​      ​| ​ 2600 |  4096 |   200 |  15.4 |      20 |             0 |        100 |
 ++------+---------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+------------+
 +</​code>​
 +
 +Gerät ausleihen:
 +<​code>​
 +UPDATE geraete SET G_Ausgeliehen = 1 WHERE G_Nr=3;
 +</​code>​
 +
 +Rechnung erstellen:
 +<​code>​
 +INSERT INTO rechnungen (R_Datum, R_Kunde, R_Bezahlt) VALUES ("​2013-01-16",​ 1, 0);
 +INSERT INTO rechnung_pos (R_Nr, G_Nr, Stck, Einzelpreis) VALUES (1, 3, 5, 20);
 +</​code>​
 +
 +Rechnung wurde bezahlt, Zahlung vermerken:
 +<​code>​
 +UPDATE rechnungen SET R_Bezahlt = 1 WHERE R_Nr=1;
 +</​code>​
computer/tutorials/sql/bestellung-loesung.txt · Zuletzt geändert: 2013/05/13 22:04 von christian