SELECT-Statements
In Teil 2 haben Sie gelernt, wo man das SELECT-Statement im ASP-Code integriert. Hier nun eine Sammlung von SQL-Statements, die Ihnen die Möglichkeiten für Abfragen zeigen soll.
Die allgemeine Schreibweise für ein SELECT-Statement
SELECT <SpaltenName> FROM <TabellenName> |
Bespiele:
Lassen sie sich die Kundentabelle anzeigen
Lassen Sie sich alle Produkte in alphabetischer Reihenfolge anzeigen
SELECT * FROM prod ORDER BY bez; |
Lassen Sie sich alle Produkte nach dem Preis absteigend sortiert anzeigen
SELECT bez, Preis FROM prod ORDER BY Preis desc; |
Lassen Sie sich alle Kunden anzeigen, deren Status 20 ist
SELECT Firma, Status FROM kde WHERE Status = 20; |
Lassen Sie sich alle Kunden anzeigen, deren Status größer als 10 ist
SELECT Firma, Status FROM kde WHERE Status > 20; |
Listen Sie alle Kunden, deren Status zwischen 10 und 20 ist.
SELECT Firma, Status FROM kde WHERE Status between 10 and 20; |
Listen Sie alle Aufträge der Kunden mit den Nummer 2 und 5
SELECT * FROM auf WHERE knr in (2, 5); |
Lassen Sie sich alle Produkte anzeigen, die mit S beginnen
SELECT bez FROM prod WHERE bez like 'S%'; |
Listen Sie alle Produkte, die an 2. Stelle ein e haben
SELECT bez FROM prod WHERE bez like '?e%'; |
Lassen Sie sich alle Kunden anzeigen in deren Name ein A vorkommt
SELECT Firma FROM kde WHERE Firma like '%a%'; |
Listen Sie alle Kunden deren Anfangsbuchstabe zwischen B und D liegt
SELECT Firma FROM kde between 'B%' and 'Dz%'; |
Listen Sie alle Kunden aus Bonn oder alle Kunden deren Status größer als 10 ist
SELECT * FROM kde WHERE Ort like 'Bonn' OR Status > 10; |
Auflistung aller Aufträge ausgenommen diejenigen, die zwischen März und Juni 1993 angenommen wurden
SELECT * FROM auf WHERE adat between #03/01/1993# and #06/30/1993#; |
Lassen Sie sich alle Aufträge anzeigen, die noch keinen Liefertermin haben.
SELECT * FROM auf WHERE ldat is null; |
Wieviele Kunden haben Aufträge erteilt
SELECT count(knr) as Anzahl_Kunden_ohne_Auftrag FROM kde WHERE knr in (SELECT DISTINCT knr FROM auf); |
Wieviele Aufträge haben ein Lieferdatum
SELECT count(ldat) AS [ohne Lieferdatum] FROM auf WHERE ldat is not null; |
Wie hoch ist der höchste, kleinste und der durchschnittlich Lagerbestand?
SELECT max(menge) AS Maximalwert, min(menge) AS Minimalwert, avg(menge) AS Mittelwert FROM lag; |
Welchen Wert haben die einzelnen Kunden aller Aufträge
SELECT anr, sum(menge*vkp) AS Wert FROM pos GROUP BY anr; |
Berechnen Sie die Stückzahlen der bestellten jedoch noch nicht gelieferten Produkte
SELECT bez, sum(menge) AS Summe FROM auf, pos, prod WHERE auf.anr=pos.anr and auf.anr=pos.anr and ldat is not null GROUP BY firma; |
Welche Aufträge sind vorhanden, wie hoch ist der erzielte Verkaufspreis gegenüber dem normalen Verkaufspreis
SELECT firma, auf.ans, ccur(sum(menge*vkp)*1.2) AS Verkauf, sum(menge*preis) AS Lagerpreis FROM kde, auf, pos, prod WHERE kde.knr = auf.knr and auf.anr = pos.anr and pos.pnr = prod.pnr GROUP BY firma, auf.anr; |
Wenn Sie nur an den Aufträgen interessiert sind, deren Auftragsvolumen mehr als 10.000,- DM betragen
SELECT firma, auf.anr, sum(menge*vkp) AS Wert FROM kde, auf, pos WHERE kde.knr=auf.knr and auf.anr=pos.anr GROUP BY firma, auf.anr HAVING sum(menge*vkp)>10000; |
Lassen Sie sich alle Aufträge mit Auftragsvolumen zwischen 1000,- und 10000,- DM anzeigen
SELECT firma, auf.anr, sum(menge*vkp) AS Wert FROM kde, auf, pos WHERE kde.knr=auf.knr and auf.anr=pos.anr GROUP BY firma, auf.anr HAVING sum(menge*vkp) between 1000 and 10000 ORDER BY 3; |
Lassen Sie sich alle Produkte anzeigen, deren Preis über dem Durchschnittspreis liegt
SELECT * FROM prod WHERE Preis > (SELECT avg(Preis) FROM prod); |