Gerät mit folgenden Eckdaten suchen:
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;