"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

SQL Frage!

Nevermind 24.11.2001 - 14:12 1155 7
Posts

Nevermind

what is this world for?
Registered: Feb 2001
Location: Vienna
Posts: 1208
Kann mir wer diese Hausübung lösen? Bin ne Lusche in SQL...

Außerdem hat der Lehrer nix erklärt deshalb weiß ich nicht ob wir Pseudodaten eingeben sollen oder nicht?!

Falls sich wer auskennt wär ich dankbar für Hilfe!

Beispiel 1:

PRODUKT( pname , typ, hersteller, lizenzkosten)
LIZENZ ( rname, pname, datum)
VERWENDUNG ( pname, rname, datum )

1.1. Erstelle ein SQL: Namen aller Rechner auf denen nach dem 30.9.95 keine Lizenz mehr ausgestellt wurde.

1.2. Erstelle ein SQL: Namen und Hersteller aller Produkte, welche auf weniger als 10 Rechner verwendet worden sind (also auch auf keinem Rechner).


Beispiel 2:

KURS ( knr , bezeichnung, teilnehmer , beginn, ende)
SCHUELER ( svnr , name, adresse)
ANMELDUNG ( knr, svnr, datum)

2.1. Erstelle ein SQL: Welcher Schüler hat als erster einen Kurs belegt.

2.2. Erstelle ein SQL: Alle Kurse von 92 bis 94 bei denen die maximale Teilnehmeranzahl bei der Anmeldung überschritten wurde.

Nevermind

what is this world for?
Registered: Feb 2001
Location: Vienna
Posts: 1208
weiß den niemand was? :confused: :(

Bimminger

christoph-bimminger.at
Avatar
Registered: Nov 2001
Location: Linz
Posts: 684
1.1)

SELECT rname FROM lizenz WHERE datum IS NULL OR datum < '30.9.95'

-> das Datumsformat variiert je nach SQL-Dialekt. Bei einigen (zB Oracle) is eine Konvertierung des Strings in ein Datum erforderlich.

-> On das mit IS NULL abgefragt werdn muss hängt vom Datenmodell ab - eh klar


1.2.)

SELECT pname, hersteller FROM produkt WHERE pname IN (SELECT pname FROM verwendung WHERE (SELECT COUNT(pname) AS counter FROM verwendung WHERE counter<10)))

-> sollte gehn. ght aber a sicher einfacher
-> COUNT is zB in Oracle und MS-SQL. Is denk ich nicht in der ISO-Spezifikation

2.1)

SELECT * FROM schueler WHERE svnr=(SELECT svnr FROM anmeldung WHERE datum=MIN(datum))

-> MIN is zB in Oracle. Is denk ich nicht in der ISO-Spezifikation

2.2) SELECT * FROM kurs mykurs where teilnehmer<(SELECT COUNT(*) FROM anmeldung WHERE knr=mykurs.knr and datum>1.1.92 and datum<31.12.94)

-> angaben zum datum wie bei 1.
-> angaben zu count(*) wie bei 1.

ALLE ANGABEN OHNE GEWÄHR!! unbedingt zuerst mit testdaten ausprobiern. hab auch schon seit ca 2 jahren nimma "hardcore" sqlstrings ghabt.

mfG CB

Nevermind

what is this world for?
Registered: Feb 2001
Location: Vienna
Posts: 1208
thx, werds gleich mal testen
muss es aber in access machen :(

aber naja wird schon klappen


EDIT: naja funzen tuts nicht wirklich, habs auf meine datenbank bissi abgeändert kommen aber nur die ärgsten Fehlermeldungen
Bearbeitet von Nevermind am 25.11.2001, 12:14

Bimminger

christoph-bimminger.at
Avatar
Registered: Nov 2001
Location: Linz
Posts: 684
in access musst datum denk ich als

#20011125#

notiern oder so. mehr dazu in der access hilfe. der rest sollt eigentlich werken. count geht in acccess sicher, beim min bin i ma net sicher sollt aber a gehn.

mfG CB

Nevermind

what is this world for?
Registered: Feb 2001
Location: Vienna
Posts: 1208
werd mich noch bissi rumspielen, aber naja irgendwie krieg ichs hin

manalishi

tl;dr
Avatar
Registered: Feb 2001
Location: Feldkirch
Posts: 5977
argh... hab bimmingers posting übersehen ;-)
Bearbeitet von manalishi am 25.11.2001, 13:36

Bimminger

christoph-bimminger.at
Avatar
Registered: Nov 2001
Location: Linz
Posts: 684
wh du hast mein posting übersehn? hmm check i net. hast ja vorher gar nix andres geposted...

mfG CB
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz