DevTrain

Autor: Bernhard Elbl

Tutorial: ASP und Datenbanken Teil 3

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
SELECT * FROM Kunden;

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);


Erfasst am: 06.02.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=295
© Copyright 2003 ppedv AG - http://www.ppedv.de