Gerät mit folgenden Eckdaten suchen:
* nicht ausgeliehenes Gerät
* 2 GHz oder mehr CPU-Takt
* RAM größer oder gleich 2 GB
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 |
+------+----------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+
SQL-Befehl abändern, damit auch der Wochenpreis (//5 Werktage//) angezeigt wird - Herr Mustermann nennt ein Limit von 100 EUR:
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 |
+------+----------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+-----------------+
SQL-Befehl entsprechend abändern, sodass nach der CPU absteigend sortiert wird - nur das erste Ergebnis soll angezeigt werden:
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 |
+------+---------------+-------------+----------------+-------+-------+-------+-------+---------+---------------+------------+
Gerät ausleihen:
UPDATE geraete SET G_Ausgeliehen = 1 WHERE G_Nr=3;
Rechnung erstellen:
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);
Rechnung wurde bezahlt, Zahlung vermerken:
UPDATE rechnungen SET R_Bezahlt = 1 WHERE R_Nr=1;