SQL Beispiele
Hier noch die Tabellen und einige Beispielabfragen (z.B. für ein kleines Reisebüro)
Tabelle MITREISENDE
NAME_ID |
NAME |
VORNAME |
ALTER |
U00001 |
URLAUBER |
ANNA |
35 |
U00001 |
URLAUBER |
DANIEL |
15 |
U00001 |
URLAUBER |
EMIL |
6 |
U00001 |
URLAUBER |
JULIUS |
3 |
U00003 |
URLAUBER |
ANNA |
35 |
|
KRANK |
GUSTAV |
55 |
Tabelle PREISLISTE
UNTERKUNFT_ID |
LAND |
STADT |
HOTEL |
KATEGORIE |
PREIS |
KOSTEN |
P00001 |
D |
BERLIN |
HERBERGE |
2 |
30,00 |
15,00 |
P00002 |
D |
HAMBURG |
HOTEL |
3 |
60,00 |
25,00 |
P00003 |
D |
MÜNCHEN |
HOTEL |
4 |
80,00 |
30,00 |
P00004 |
D |
BERLIN |
HOTEL |
3 |
40,00 |
10,00 |
P00005 |
D |
HAMBURG |
HOTEL |
3 |
50,00 |
10,00 |
P00006 |
D |
MÜNCHEN |
HOTEL |
3 |
55,00 |
10,00 |
P00007 |
D |
MÜNCHEN |
HOTEL |
3 |
|
|
Tabelle RABATT
ALTER_VON |
ALTER_BIS |
RABATT |
0 |
3 |
100,00 |
4 |
10 |
50,00 |
11 |
16 |
25,00 |
16 |
150 |
0,00 |
Tabelle URLAUB
NAME_ID |
NAME |
VORNAME |
ALTER |
URLANFANG |
URLENDE |
UNTERKUNFT_ID |
U00001 |
URLAUBER |
ANTON |
45 |
01.08.07 |
11.08.07 |
P00001 |
U00002 |
BLAUMACHER |
BERTA |
22 |
15.07.07 |
25.07.07 |
P00002 |
U00003 |
URLAUBER |
CÄSAR |
38 |
06.03.07 |
16.03.07 |
P00003 |
U00004 |
URLAUBER |
ANTON |
45 |
13.09.07 |
15.09.07 |
|
U00005 |
URLAUBER |
ANTON |
45 |
20.10.07 |
27.10.07 |
|
U00006 |
URLAUBER |
CÄSAR |
38 |
20.10.07 |
27.10.07 |
|
Tabelle ZAHLUNGEN
NAME_ID |
ANZAHLUNG |
UEBERWEISUNG |
U00001 |
100,00 |
300,00 |
U00002 |
|
|
Abfrage Anzahl der Mitreisende nach URLAUB.NAME
SELECT U.NAME_ID, U.NAME, U.VORNAME, COUNT(M.NAME) Mitreisende
FROM URLAUB U LEFT OUTER JOIN MITREISENDE M ON U.NAME_ID = M.NAME_ID
GROUP BY U.NAME_ID, U.NAME, U.VORNAME
Abfrage Namen der Mitreisenden nach URLAUB.NAME
SELECT U.NAME_ID, U.NAME, U.VORNAME, M.NAME, M.VORNAME
FROM MITREISENDE M LEFT OUTER JOIN URLAUB U ON M.NAME_ID = U.NAME_ID
Abfrage Reisekosten für Urlaub nach URLAUB.NAME
SELECT U.NAME, U.VORNAME,
SUM(((U.URLENDE-U.URLANFANG)*P.PREIS)-((U.URLENDE-U.URLANFANG)*P.PREIS*R.RABATT/100))
FROM PREISLISTE P, RABATT R, URLAUB U
WHERE U.UNTERKUNFT_ID = P.UNTERKUNFT_ID AND ((U.ALTER Between R.ALTER_VON And R.ALTER_BIS))
GROUP BY U.NAME, U.VORNAME
Abfrage Reisekosten für Mitreisende nach URLAUB.NAME
SELECT UM.NAME, UM.VORNAME,
SUM(((UM.URLENDE-UM.URLANFANG)*PM.PREIS)-((UM.URLENDE-UM.URLANFANG)*PM.PREIS*RM.RABATT/100))
FROM MITREISENDE MM, PREISLISTE PM, RABATT RM, URLAUB UM
WHERE MM.NAME_ID = UM.NAME_ID AND UM.UNTERKUNFT_ID = PM.UNTERKUNFT_ID AND ((MM.ALTER Between RM.ALTER_VON And RM.ALTER_BIS))
GROUP BY UM.NAME, UM.VORNAME
Abfrage Reisekosten Gesamt nach URLAUB.NAME
SELECT U.NAME, U.VORNAME, SUM(((U.URLENDE-U.URLANFANG)*P.PREIS)-((U.URLENDE-U.URLANFANG)*P.PREIS*R.RABATT/100))/COUNT(U.NAME)+SUM(((UM.URLENDE-UM.URLANFANG)*PM.PREIS)-((UM.URLENDE-UM.URLANFANG)*PM.PREIS*RM.RABATT/100))
FROM MITREISENDE MM, PREISLISTE P, PREISLISTE PM, RABATT R, RABATT RM, URLAUB U, URLAUB UM
WHERE U.UNTERKUNFT_ID = P.UNTERKUNFT_ID AND ((U.ALTER Between R.ALTER_VON And R.ALTER_BIS) AND
(UM.NAME=U.NAME) AND (UM.VORNAME=U.VORNAME) AND (MM.NAME_ID=UM.NAME_ID) AND
(UM.UNTERKUNFT_ID=PM.UNTERKUNFT_ID) AND (MM.ALTER Between RM.ALTER_VON And RM.ALTER_BIS))
GROUP BY U.NAME, U.VORNAME