ARENA
Neuer Benutzer
- Beiträge
- 4
es handelt sich um Folgendes:
1. Gegeben sind die folgenden drei Tabellen:
CREATE TABLE KUNDE
( K_ID INT(11),
NAME VARCHAR(50),
VORNAME VARCHAR(50),
WOHNORT VARCHAR(50),
CONSTRAINT PK_KUNDE PRIMARY KEY (K_ID));
________________________________________________
CREATE TABLE PRODUKT
( P_ID INT(11),
BEZEICHNUNG VARCHAR(50),
PREIS INT(11),
CONSTRAINT PK_PRODUKT PRIMARY KEY (P_ID));
______________________________________________
CREATE TABLE BESTELLUNG
( B_ID INT(11),
K_ID INT(11),
P_ID INT(11),
DATUM DATE,
MENGE INT(11),
CONSTRAINT FK_BESKUN FOREIGN KEY (K_ID)
REFERENCES KUNDE (K_ID),
CONSTRAINT FK_BESPRD FOREIGN KEY (P_ID)
REFERENCES PRODUKT (P_ID));
die fragen siund folgende:
i. Bitte schreibe ein SQL-Statement, welches alle Kunden ermittelt, die exakt zwei
Bestellungen aufgegeben haben.
j. Bitte schreibe ein SQL-Statement, welches alle Produkte ermittelt, die von einem oder
mehreren Kunden mehr als einmal bestellt wurden. → versuch GROUP BY und HAVING
Meine Versuche:
-- i .--
SELECT KUNDE.K_ID, COUNT( * ) FROM KUNDE, BESTELLUNG
WHERE KUNDE.K_ID=BESTELLUNG.K_ID
-- GROUP BY KUNDE.K_ID
GROUP BY BESTELLUNG.K_ID
HAVING COUNT(BESTELLUNG.K_ID) = 2;
-- j mit exists --
SELECT *
FROM KUNDE,PRODUKT
WHERE EXISTS
(
SELECT * FROM BESTELLUNG AS b
WHERE KUNDE.K_ID = b.K_ID
AND b.P_ID = PRODUKT.P_ID
)
1. Gegeben sind die folgenden drei Tabellen:
CREATE TABLE KUNDE
( K_ID INT(11),
NAME VARCHAR(50),
VORNAME VARCHAR(50),
WOHNORT VARCHAR(50),
CONSTRAINT PK_KUNDE PRIMARY KEY (K_ID));
________________________________________________
CREATE TABLE PRODUKT
( P_ID INT(11),
BEZEICHNUNG VARCHAR(50),
PREIS INT(11),
CONSTRAINT PK_PRODUKT PRIMARY KEY (P_ID));
______________________________________________
CREATE TABLE BESTELLUNG
( B_ID INT(11),
K_ID INT(11),
P_ID INT(11),
DATUM DATE,
MENGE INT(11),
CONSTRAINT FK_BESKUN FOREIGN KEY (K_ID)
REFERENCES KUNDE (K_ID),
CONSTRAINT FK_BESPRD FOREIGN KEY (P_ID)
REFERENCES PRODUKT (P_ID));
die fragen siund folgende:
i. Bitte schreibe ein SQL-Statement, welches alle Kunden ermittelt, die exakt zwei
Bestellungen aufgegeben haben.
j. Bitte schreibe ein SQL-Statement, welches alle Produkte ermittelt, die von einem oder
mehreren Kunden mehr als einmal bestellt wurden. → versuch GROUP BY und HAVING
Meine Versuche:
-- i .--
SELECT KUNDE.K_ID, COUNT( * ) FROM KUNDE, BESTELLUNG
WHERE KUNDE.K_ID=BESTELLUNG.K_ID
-- GROUP BY KUNDE.K_ID
GROUP BY BESTELLUNG.K_ID
HAVING COUNT(BESTELLUNG.K_ID) = 2;
-- j mit exists --
SELECT *
FROM KUNDE,PRODUKT
WHERE EXISTS
(
SELECT * FROM BESTELLUNG AS b
WHERE KUNDE.K_ID = b.K_ID
AND b.P_ID = PRODUKT.P_ID
)