SELECT *
FROM Lieferanten
WHERE Wohnort = 'Aalen';
7.2 Ausgabe einer alphabetisch geordneten Übersicht der Pflanzennamen, mit Artikelcode, Pflanzenname und Preis aller Pflanzen aus der Tabelle ‘Pflanzen’.
SELECT Pflanzenname, Art_Code, Preis
FROM Pflanzen
ORDER BY Pflanzenname ASC;
SELECT Pflanzenname
FROM Pflanzen
WHERE Bl_B = 3;
7.4 Ausgabe einer Übersicht aller Angebote aus der Tabelle ‘Angebote’, sortiert nach dem Artikelcode des Lieferanten. Ausgegeben werden sollen nur die Daten Artikelcode, Artikelcode des Lieferanten und Lieferantencode.
SELECT Art_Code, Art_Code_Lfr, Lfr_Code
FROM Angebote
ORDER BY Lfr_Code;
SELECT *
FROM Pflanzen
WHERE Sorte = 'Wasser'
ORDER BY Höhe * 1 DESC;
7.6 Ausgabe einer Liste der verschiedenen Farben, die zu den Pflanzen der Tabelle ‘Pflanzen’ gehören.
SELECT DISTINCT Farbe
FROM Pflanzen;
SELECT DISTINCT Farbe
FROM Pflanzen
WHERE Farbe <> '';
oder
SELECT DISTINCT Farbe
FROM Pflanzen
WHERE NOT Farbe = '';
SELECT DISTINCT Sorte
FROM Pflanzen;
7.9 Angabe einer Übersicht aller Stauden, die gelbe Blüten haben. Von jeder Pflanze sind die folgenden Daten erwünscht: Artikelcode, Pflanzenname, Höhe und Bl_B.
SELECT Art_Code, Pflanzenname, Höhe, Bl_B
FROM Pflanzen
WHERE Farbe = 'gelb' and Sorte = 'Staude';
7.10 Ausgabe einer Übersicht aller Pflanzen mit einem Preis über EUR 10,00, die nicht zu der Sorte der Bäume gehören.
SELECT *
FROM Pflanzen
WHERE NOT Sorte = 'Baum'
AND Preis > 10;
oder
SELECT *
FROM Pflanzen
WHERE Sorte <> 'Baum'
AND Preis > 10;
7.11 Ausgabe einer Liste aller Pflanzen, die im Juni zu blühen beginnen und gelbe Blüten haben, und zugleich aller Pflanzen, die im August zum ersten Mal blühen und rote Blüten haben. In der Übersicht sollen alle verfügbaren Arten enthalten sein.
SELECT *
FROM Pflanzen
WHERE (Bl_B = 6
AND Farbe = 'gelb')
OR (Bl_B = 8
AND Farbe = 'rot');
SELECT Pflanzenname, Höhe
FROM Pflanzen
WHERE Höhe <= 60;
SELECT *
FROM Lieferanten
WHERE Wohnort <> 'Hannover';
oder
SELECT *
FROM Lieferanten
WHERE NOT Wohnort = 'Hannover';
SELECT *
FROM Pflanzen
WHERE Höhe = ''
AND Farbe = '';
SELECT *
FROM Pflanzen
WHERE Bl_B <= 8
AND Bl_E >= 10;
SELECT *
FROM Pflanzen
WHERE Bl_B <= 9
AND Bl_E >= 9;
SELECT *
FROM Pflanzen
WHERE Sorte = 'Staude'
AND Preis <= 3
AND Preis >= 5;
oder
SELECT *
FROM Pflanzen
WHERE Sorte = 'Staude'
AND Preis BETWEEN 3 AND 5;
7.18 Ausgabe einer Übersicht aller Pflanzen, die im März, April, September oder Oktober zu blühen beginnen.
SELECT *
FROM Pflanzen
WHERE Bl_B IN (3, 4, 9, 10);
oder
SELECT *
FROM Pflanzen
WHERE Bl_B = 3
OR Bl_B = 4
OR Bl_B = 9
OR Bl_B = 10;
SELECT *
FROM Pflanzen
WHERE Pflanzenname LIKE '%baum';
7.20 Ausgabe des Artikelcodes und Pflanzennamens aller Pflanzen, die als dritten Buchstaben ein ‘n’ haben.
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE Pflanzenname LIKE '__n%';
7.21 Welche 1- und 2-jährigen Pflanzen stehen in der Tabelle ‘Pflanzen’? Diese Frage ist mit und ohne den Operator ‘LIKE’ zu lösen.
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE Sorte = '1-jährig'
OR Sorte = '2-jährig';
oder
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE Sorte IN ('1-jährig', '2-jährig');
oder
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE Sorte LIKE '%-jährig';
7.22 Ausgabe einer Übersicht aller Pflanzen, ausgenommen Bäume und Sträucher, die zwischen 100 und 200 cm hoch werden, rote oder blaue Blüten tragen und vor August zu blühen beginnen. Alle Daten außer dem Preis sind wichtig. Die Liste ist nach der Spalte Sorte und innerhalb der Sorte nach Pflanzennamen zu sortieren.
SELECT Art_Code, Pflanzenname, Sorte, Farbe, Höhe, Bl_B, Bl_E
FROM Pflanzen
WHERE Sorte NOT IN ('Baum', 'Strauch')
AND Höhe BETWEEN 100 AND 200
AND Farbe IN ('rot', 'blau')
AND Bl_B < 8
ORDER BY Sorte, Pflanzenname;
7.23 Welche Pflanzen haben die Buchstaben ‘kraut’ als Nachsilbe in ihrem Namen, aber gehören nicht zu der Sorte ‘Kraut’?
SELECT *
FROM Pflanzen
WHERE Sorte <> 'Kraut'
AND Pflanzenname LIKE '%kraut';
7.24 Ausgabe von Artikelcode und Pflanzenname aller Pflanzen, die mit dem Buchstaben ‘L’ beginnen und mit dem Buchstaben ‘E’ enden.
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE Pflanzenname LIKE 'l%'
AND Pflanzenname LIKE '%e';
oder
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE Pflanzenname LIKE 'l%e';
7.25 Ausgabe des Artikelcodes und Pflanzennamens aller Pflanzen, die mit dem Buchstaben ‘A’ beginnen oder die mit dem Buchstaben ‘M’ beginnen und enden.
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE Pflanzenname LIKE 'A%'
OR Pflanzenname LIKE 'M%m';
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE Pflanzenname LIKE '% %';
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE Pflanzenname LIKE '_____';
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE Pflanzenname LIKE '_____%';
SELECT Art_Code, Pflanzenname
FROM Pflanzen
WHERE length(Pflanzenname) <= 5;
SELECT COUNT(*)
FROM Lieferanten;
SELECT AVG(Preis)
FROM Pflanzen
WHERE Sorte = 'Wasser';
SELECT MAX(Höhe)
FROM Pflanzen
WHERE Sorte = 'Baum';
SELECT MIN(Ang_Preis),AVG(Ang_Preis),MAX(Ang_Preis)
FROM Angebote
WHERE Lfr_Code = '13';
SELECT MIN(Ang_Preis)
FROM Angebote
WHERE Art_Code = '123';
8.6 Gesucht wird eine Übersicht des gesamten Bestellbetrages pro Bestellzeile aus der Tabelle ‘Bestelldaten’.
SELECT Bestellnr, Art_Code_Lfr, Anzahl * Bestellpreis
FROM Bestelldaten
8.7 Gesucht wird eine Übersicht der Sträucher aus der Tabelle ‘Pflanzen’, wobei die Preise um 5 % erhöht sind.
SELECT Pflanzenname, Art_Code, Preis*1.05
FROM Pflanzen
WHERE Sorte = 'Strauch';
SELECT SUM(Betrag)
FROM Bestellungen
WHERE Lfr_Code = '004';
8.9 Wieviel Stück des Lieferanten-Artikelcodes B111 (der vom Lieferanten benutzte Code) sind bestellt?
SELECT SUM(Anzahl)
FROM Bestelldaten
WHERE Art_Code_Lfr = 'B111';
8.10 Wie hoch ist der gesamte Bestellbetrag (ohne Preisabschlag) für den Lieferanten-Artikelcode B331?
SELECT SUM(Anzahl * Bestellpreis)
FROM Bestelldaten
WHERE Art_Code_Lfr = 'B331';
SELECT Sorte, COUNT(*)
FROM Pflanzen
GROUP BY Sorte;
SELECT Bestellnr, COUNT(*)
FROM Bestelldaten
GROUP BY Bestellnr;
SELECT Sorte, AVG(Preis)
FROM Pflanzen
GROUP BY Sorte;
SELECT Sorte, Farbe, COUNT(*)
FROM Pflanzen
GROUP BY Sorte, Farbe;
9.5 Es ist eine Übersicht anzufertigen, aus der visuell abgeleitet werden kann, welche Staudenpflanzenfarbe den höchsten mittleren Preis hat.
SELECT Farbe, AVG(Preis)
FROM Pflanzen
WHERE Sorte = 'Staude'
GROUP BY Farbe;
9.6 Pro Lieferant (Code) ist die Gesamtartikelanzahl anzuzeigen, die der Lieferant dem Gartenzentrum anbietet; die Lieferzeit der Artikel soll weniger als 18 Tage betragen.
SELECT COUNT(*), Lfr_Code
FROM Angebote
WHERE Lfr_Zeit < 18
GROUP BY Lfr_Code;
SELECT Sorte, AVG(Preis)
FROM Pflanzen
WHERE Farbe <> 'gelb'
GROUP BY Sorte;
SELECT Art_Code, MIN(Ang_Preis), MAX(Ang_Preis)
FROM Angebote
GROUP BY Art_Code;
9.9 Welches ist der mittlere Preis pro Pflanzensorte für Sorten, von denen mindestens 10 Exemplare in der Tabelle Pflanzen enthalten sind?
SELECT AVG(Preis), Sorte, COUNT(*)
FROM Pflanzen
GROUP BY Sorte
HAVING COUNT(*) >= 10;
9.10 Haben die Pflanzen mit kurzen Lieferzeiten im Allgemeinen einen höheren mittleren Angebotspreis?
SELECT AVG(Ang_Preis), Lfr_Zeit
FROM Angebote
GROUP BY Lfr_Zeit
ORDER BY Lfr_Zeit;
9.11 Gewünscht wird eine Übersicht mit dem niedrigsten und dem höchsten Bestellpreis pro Artikelcode des Lieferanten.
SELECT MIN(Bestellpreis), MAX(Bestellpreis), Art_Code_Lfr
FROM Bestelldaten
GROUP BY Art_Code_Lfr;
9.12 Gesucht wird eine Übersicht der Anzahl der zur Verfügung stehenden Pflanzen, geordnet nach Monat des Blütebeginns/Höhe/Farbgruppe.
SELECT Bl_B, Höhe, Farbe, COUNT(*)
FROM Pflanzen
GROUP BY Bl_B, Höhe, Farbe;
9.13 Welches ist der niedrigste Preis pro Pflanzensorte der Pflanzen, die in jedem Fall im Zeitraum von Mai bis Juni blühen?
SELECT MIN(Preis)
FROM Pflanzen
WHERE Bl_B <= 6
AND Bl_E <= 5
10.1 Gesucht wird eine Übersicht der Bestellungen mit der Bestellnummer, dem Namen des Lieferanten, dem Lieferdatum und dem Bestellbetrag.
SELECT Bestellnr, Lfr_Name, L_Datum, Betrag
FROM Bestellungen B,
Lieferanten L
WHERE B.Lfr_Code = L.Lfr_Code;
oder
SELECT Bestellnr, Lfr_Name, L_Datum, Betrag
FROM Lieferanten AS L
JOIN Bestellungen B on L.Lfr_Code = B.Lfr_Code;
10.2 Welche Pflanzen haben eine Lieferzeit von maximal 10 Tagen? Gesucht wir d eine Übersicht mit folgenden Daten: Artikelcode, Lieferanten-Artikelcode, Pflanzenname und Lieferzeit.
SELECT A.Art_Code, Art_Code_Lfr, Pflanzenname, Lfr_Zeit
FROM Angebote A
JOIN Pflanzen P ON A.Art_Code = P.Art_Code
WHERE A.Lfr_Zeit > 10;
oder
SELECT A.Art_Code, Art_Code_Lfr, Pflanzenname, Lfr_Zeit
FROM Angebote A,
Pflanzen P
WHERE Lfr_Zeit > 10
AND A.Art_Code = P.Art_Code;
10.3 Gesucht wird eine Übersicht, die erkennen lässt, bei welchen Lieferanten die Pflanzen bestellt werden können. Die Übersicht muss die folgenden Daten enthalten: Artikelcode, Pflanzenname, Lieferantencode, Name des Lieferanten, Lieferzeit und Angebotspreis. Die Übersicht soll nach Pflanzennamen sortiert sein.
SELECT A.Art_Code, Pflanzenname, L.Lfr_Code, L.Lfr_Name
FROM Angebote A
JOIN Pflanzen P ON P.Art_Code = A.Art_Code
JOIN Lieferanten L ON L.Lfr_Code = A.Lfr_Code;
oder
SELECT A.Art_Code, Pflanzenname, L.Lfr_Code, L.Lfr_Name
FROM Angebote A, Pflanzen P, Lieferanten L
WHERE A.Art_Code = P.Art_Code
AND L.Lfr_Code = A.Lfr_Code
10.4 Gesucht wird eine Übersicht der Pflanzen, deren Preis mindestens 50 % über dem Angebotspreis liegt.
SELECT Pflanzenname, A.Ang_Preis, P.Preis
FROM Pflanzen P
JOIN Angebote A ON A.Art_Code = P.Art_Code
WHERE A.Ang_Preis * 1.5 <= P.Preis;
oder
SELECT Pflanzenname, A.Ang_Preis, P.Preis
FROM Angebote A,
Pflanzen P
WHERE A.Art_Code = P.Art_Code
AND A.Ang_Preis * 1.5 <= P.Preis;
10.5 Wie unterscheiden sich die bisherigen Bestellpreise von den heutigen Angebotspreisen? In der Liste sind die Daten Bestellnummer, Artikelcode des Lieferanten und die positive oder negative Abweichung anzugeben.
SELECT B.Bestellpreis, A.Ang_Preis, B.Art_Code_Lfr, A.Ang_Preis - B.Bestellpreis as Differenz
FROM Bestelldaten B,
Angebote A
WHERE A.Art_Code_Lfr = B.Art_Code_Lfr;
oder
SELECT B.Bestellpreis, A.Ang_Preis, B.Art_Code_Lfr, A.Ang_Preis - B.Bestellpreis as Differenz
FROM Angebote A
JOIN Bestelldaten B on A.Art_Code_Lfr = B.Art_Code_Lfr;
SELECT B.Bestellpreis, A.Ang_Preis, B.Art_Code_Lfr, A.Ang_Preis - B.Bestellpreis as Differenz
FROM Bestelldaten B,
Angebote A
WHERE A.Art_Code_Lfr = B.Art_Code_Lfr
AND NOT A.Ang_Preis = B.Bestellpreis;
oder
SELECT B.Bestellpreis, A.Ang_Preis, B.Art_Code_Lfr, A.Ang_Preis - B.Bestellpreis as Differenz
FROM Angebote A
JOIN Bestelldaten B on A.Art_Code_Lfr = B.Art_Code_Lfr
HAVING NOT Differenz = 0;
SELECT DISTINCT L.Wohnort
FROM Angebote A,
Pflanzen P,
Lieferanten L
WHERE A.Art_Code = P.Art_Code
AND L.Lfr_Code = A.Lfr_Code
AND P.Sorte = 'Staude';
oder
SELECT DISTINCT L.Wohnort
FROM Lieferanten L
JOIN Angebote A ON L.Lfr_Code = A.Lfr_Code
JOIN Pflanzen P ON P.Art_Code = A.Art_Code
WHERE P.Sorte = 'Staude';
10.8 Gesucht wird eine Übersicht aller roten Pflanzen, die von Lieferanten geliefert werden, die nicht in Aalen wohnen. Folgende Daten sind anzugeben: Artikelcode, Pflanzenname, Sorte, Name des Lieferanten, Wohnort. Die Sortierung soll nach Sorte und Pflanzenname erfolgen.
SELECT A.Art_Code, P.Pflanzenname, P.Sorte, L.Lfr_Name, L.Wohnort
FROM Pflanzen P,
Lieferanten L,
Angebote A
WHERE P.Art_Code = A.Art_Code
AND L.Lfr_Code = A.Lfr_Code
AND L.Wohnort <> 'Aalen'
ORDER BY Sorte, Pflanzenname;
oder
SELECT A.Art_Code, P.Pflanzenname, P.Sorte, L.Lfr_Name, L.Wohnort
FROM Pflanzen P
JOIN Angebote A on P.Art_Code = A.Art_Code
JOIN Lieferanten L on A.Lfr_Code = L.Lfr_Code
WHERE L.Wohnort <> 'Aalen'
ORDER BY Sorte, Pflanzenname;
10.9 Für jeden Artikelcode ist der niedrigste Angebotspreis zu bestimmen. In der Übersicht sollen folgende Daten enthalten sein: Artikelcode, Pflanzenname und der zugehörige Angebotspreis. Die Übersicht ist nach Pflanzennamen zu ordnen.
SELECT A.Art_Code, P.Pflanzenname, MIN(Ang_Preis)
FROM Pflanzen P
JOIN Angebote A on P.Art_Code = A.Art_Code
GROUP BY A.Art_Code, Pflanzenname
ORDER BY Pflanzenname;
oder
SELECT P.Art_Code, Pflanzenname, MIN(Ang_Preis)
FROM Pflanzen P,
Angebote A
WHERE P.Art_Code = A.Art_Code
GROUP BY P.Art_Code, Pflanzenname
ORDER BY Pflanzenname;
10.10 Es sind die Bestellungen herauszusuchen, die ein Bestelldatum haben, das mit dem Lieferdatum einer oder mehrerer Bestellungen gleich ist.
SELECT A.Bestellnr, B.B_Datum, B.Bestellnr, B.L_Datum
FROM Bestellungen A,
Bestellungen B
WHERE A.B_Datum = B.L_Datum
ORDER BY A.Bestellnr, B.Bestellnr;
oder
SELECT A.Bestellnr, B.B_Datum, B.Bestellnr, B.L_Datum
FROM Bestellungen A
JOIN Bestellungen B ON A.B_Datum = B.L_Datum
ORDER BY A.Bestellnr, B.Bestellnr;
10.11 Welche Artikelcodes von „Pflanzlust“ gleichen den Artikelcodes eines anderen Lieferanten? Dabei sollen die Pflanzen unberücksichtigt bleiben.
SELECT DISTINCT A2.LFR_CODE, A1.Art_Code, A2.Art_Code_Lfr
FROM Angebote A1,
Angebote A2
WHERE A1.Art_Code = A2.Art_Code_Lfr;
oder
SELECT DISTINCT A2.LFR_CODE, A1.Art_Code, A2.Art_Code_Lfr
FROM Angebote A1
JOIN Angebote A2 ON A1.Art_Code = A2.Art_Code_Lfr;
10.12 Ein Kunde des Gartenzentrums „Pflanzlust“ will wissen, welche Pflanzabstände bei den folgenden Pflanzen eingehalten werden müssen: Ölweide, Sauerdorn, Seidelbast und Kornelkirsche. Diesem Kunden ist eine Übersicht mit folgenden Daten zu verschaffen: Pflanzenname, Höhe und Pflanzabstand.
SELECT Pflanzenname, Höhe, Abstand
FROM Pflanzen
JOIN PL_Schema ON Höhe BETWEEN Höhe1 AND Höhe2
WHERE Pflanzenname IN ('Ölweide', 'Sauerdorn', 'Seidelbast', 'Kornelkirsche');
oder
SELECT Pflanzenname, Höhe, Abstand
FROM Pflanzen,
PL_Schema
WHERE Höhe BETWEEN Höhe1 AND Höhe2
AND Pflanzenname IN ('Ölweide', 'Sauerdorn', 'Seidelbast', 'Kornelkirsche');
10.13 Für den vorgegebenen Zeitpunkt (1. April 1985) ist eine Übersicht anzufertigen, in der angegeben ist, welche Bestelltermine überzogen sind. Für die überfälligen Bestellungen muss in einer gesonderten Spalte die Bemerkungen „überfällig“ angegeben werden; für die anderen Bestellungen wird in der entsprechenden Spalte ein Strich eingesetzt. Die Übersicht ist nach der Bestellnummer zu ordnen.
10.14 „Pflanzlust“ hätte gerne eine Liste, in der angegeben ist, welche Bäume in Aalen und welche Außerhalb von Aalen erhältlich sind. In der Übersicht müssen die folgenden Daten erscheinen: Artikelcode, Pflanzenname, Artikelcode des Lieferanten mit der Angabe „Aalen“ oder „außerhalb Aalen“.
SELECT P.Art_Code, Pflanzenname, Art_Code_Lfr, 'Aalen'
FROM Pflanzen P
JOIN Angebote A ON P.Art_Code = A.Art_Code AND P.Sorte = 'Baum'
JOIN Lieferanten L ON L.Lfr_Code = A.Lfr_Code AND Wohnort = 'Aalen'
UNION
SELECT P.Art_Code, Pflanzenname, Art_Code_Lfr, '-'
FROM Pflanzen P
JOIN Angebote A ON P.Art_Code = A.Art_Code AND P.Sorte = 'Baum'
JOIN Lieferanten L ON L.Lfr_Code = A.Lfr_Code AND NOT Wohnort = 'Aalen';
oder
SELECT P.Art_Code, Pflanzenname, Art_Code_Lfr, 'Aalen'
FROM Pflanzen P,
Angebote A,
Lieferanten L
WHERE P.Art_Code = A.Art_Code
AND P.Sorte = 'Baum'
AND L.Lfr_Code = A.Lfr_Code
AND Wohnort = 'Aalen'
UNION
SELECT P.Art_Code, Pflanzenname, Art_Code_Lfr, '-'
FROM Pflanzen P,
Angebote A,
Lieferanten L
WHERE P.Art_Code = A.Art_Code
AND P.Sorte = 'Baum'
AND L.Lfr_Code = A.Lfr_Code
AND NOT Wohnort = 'Aalen';
SELECT Pflanzenname, Höhe
FROM Pflanzen
WHERE Höhe > (SELECT AVG(Höhe) FROM Pflanzen)
SELECT Pflanzenname, Preis
FROM Pflanzen
WHERE Preis > (SELECT AVG(Preis)
FROM Pflanzen
WHERE Sorte = 'Blume')
11.3 Gesucht wird eine Übersicht der Lieferanten, bei denen noch Bestellungen mit einem Lieferdatum vorliegen, das vor dem 1. April 1985 liegt. Dieses Problem soll einmal mit und einmal ohne Unterfragenkonstruktion gelöst werden.
SELECT *
FROM Angebote
WHERE Ang_Preis = (SELECT MIN(Ang_Preis)
FROM Angebote);
SELECT Pflanzenname, Höhe
FROM Pflanzen
WHERE Höhe < (SELECT MIN(Höhe)
FROM Pflanzen
WHERE Sorte = 'Staude')
11.6 Welche Pflanzen sind höher als die mittlere Höhe der Staudenpflanzen und zugleich billiger als der mittlere Preis der Staudenpflanzen?
SELECT *
FROM Pflanzen
WHERE Höhe > (SELECT AVG(Höhe)
FROM Pflanzen
WHERE Sorte = 'Staude')
AND Preis < (SELECT AVG(Preis)
FROM Pflanzen
WHERE Sorte = 'Staude');
11.7 Welche Pflanzen haben einen Preis, der zwischen dem niedrigsten und dem höchsten Preis der rankenden Pflanzen liegt?
SELECT *
FROM Pflanzen
WHERE Preis >= (SELECT MIN(Preis)
FROM Pflanzen
WHERE Sorte = 'Ranke')
AND Preis <= (SELECT MAX(Preis)
FROM Pflanzen
WHERE Sorte = 'Ranke');
11.8 Welche Bestellungen haben mehr als 5 % Preisnachlass erhalten? Bei der Lösung ist die Tabelle Bestelldaten zu verwenden.
SELECT *
FROM Bestellungen B
WHERE Betrag < (SELECT 0.95 * SUM(Anzahl * Bestellpreis)
FROM Bestelldaten
WHERE Bestellnr = B.Bestellnr);
11.9 Gesucht ist eine Übersicht aller Artikelcodes, die einen niedrigeren Angebotspreis haben als der mittlere Angebotspreis für den betreffenden Artikelcode. In der Übersicht sind Artikelcode, Lieferantenname und Angebotspreis anzugeben; zu sortieren ist nach Artikelcode.
SELECT Art_Code, Lfr_Name, Ang_Preis
FROM Lieferanten
JOIN Angebote AS A1 ON Lieferanten.Lfr_Code = A1.Lfr_Code
AND ANG_Preis < (SELECT AVG(Ang_Preis)
FROM Angebote A2
WHERE A1.Art_Code = A2.Art_Code);
oder
SELECT Art_Code, Lfr_Name, Ang_Preis
FROM Lieferanten L,
Angebote A
WHERE L.Lfr_Code = A.Lfr_Code
AND ANG_Preis < (SELECT AVG(Ang_Preis)
FROM Angebote A2
WHERE A.Art_Code = A2.Art_Code)
ORDER BY Art_Code;
11.10 Gesucht ist eine Übersicht der bestellten Pflanzen, die einen Bestellpreis haben, der höher ist als der maximale Angebotspreis für eine derartige Pflanze. Folgende Daten sind in der Übersicht anzugeben: Bestellnummer, Artikelcode des Lieferanten, Pflanzenname und Bestellpreis
SELECT B.Bestellnr, B.Art_Code_Lfr, Pflanzenname, Bestellpreis
FROM Angebote A1
JOIN Pflanzen ON A1.Art_Code = Pflanzen.Art_Code
JOIN Bestelldaten B ON A1.Art_Code_Lfr = B.Art_Code_Lfr
AND Bestellpreis > (SELECT MAX(A2.Ang_Preis)
FROM Angebote A2
WHERE A1.Art_Code = A2.Art_Code);
oder
SELECT B.Bestellnr, B.Art_Code_Lfr, Pflanzenname, Bestellpreis
FROM Angebote AS A,
Pflanzen AS P,
Bestelldaten AS B
WHERE A.Art_Code_Lfr = B.Art_Code_Lfr
AND A.Art_Code = P.Art_Code
AND Bestellpreis > (SELECT MAX(A2.Ang_Preis)
FROM Angebote A2
WHERE A.Art_Code = A2.Art_Code);