Brauche dringend Hilfe bei einigen SQL-Abfragen!

Justin09

Mitglied
Hallo zusammen,

kunde: {[ kundennr, vorname, nachname, strasse, hausnr, plz, stadt, telnr ]}
filiale: {[ filialnr, strasse, hausnr, plz, stadt, sterne ]}
raum: {[ raumnr, filialnr, betten, kategorie, preis]}
reservierung: {[ reservierungsnr, filialnr, kundennr, raumnr, beginn, ende ]}
belegung: {[ belegungsnr, reservierungsnr, checkin, checkout, gesamtpreis ]}

1. Eine Liste aller Raumnummern von Räumen der Kategorie B aus der Filiale Nr. 12345 mit mehr als einem Bett, bei denen der Preis für eine Übernachtung ¨über 100 Euro liegt.

2. Eine Liste mit den Kunden- und Telefonnummern aller Kunden, die mindestens
einmal in Raum 15 der Filiale Nr. 54321 übernachtet haben. Jeder Kunde soll nur
einmal in der Liste auftauchen.

3. Eine Liste mit Raumnummer, Filialnummer und Kundennummer sowie Vor- und Nachname des jeweiligen Kunden für alle Reservierungen von Filialen aus Hamburg, bei denen der Aufenthalt zwischen dem 01.07.2011 und dem 31.12.2011 beginnt. Die Liste soll absteigend nach Kundennamen (erst Nachname, dann Vorname) sortiert werden.

4. Die Filiale Nummer 63746 erö?net einen neuen Raum der Kategorie B mit der Nummer 111, einem Bett und einem Übernachtungspreis von 120 Euro. Fügen Sie den entsprechenden Datensatz hinzu.

5. Eine neue Drei-Sterne-Filiale mit der Nummer 1324 erö?net in der Hotelgasse 8,
12131 Berlin. Fügen Sie den entsprechenden Datensatz hinzu.

6. Der Kunde mit der Nummer 3243 ist umgezogen, seine neue Adresse lautet Alleestr. 12, 42853 Remscheid. Andern Sie den entsprechenden Datensatz.

7. Durch größere Investitionen konnten alle Vier-Sterne-Filialen in München auf fünf
Sterne aufgewertet werden. Aktualisieren Sie die betro?enen Datensätze.

Ich weiß nicht wie man das ganze in SQL-Anweisungen schreibt. Es wäre nett wenn Ihr mir helfen könntet.

Danke im Voraus
Gruß Justin09
 
item: Was für SQL? MS SQL? MySQL? MS Access? Oracle? SQLite? etc.

item: Klingt nach einer Schulaufgabe. Ist dem so? Oder warum brauchst du das so dringend?
 
Hi Yaslaw,

ist MySQL. Ja es ist eine Schulaufgabe.

Mein Problem ist dass ich keine Ahnung davon habe und muss es bis Morgen Abend fertig haben.

Könntest du mir dabei helfen?

Danke
 
Du musst für die Schule etwas machen wo du keine Ahnung hast? Warum denn das?

Ich kann dir helfen wenn du Ansätze hast, aber ich werde deine Aufgabe nicht für dich machen.

Nachtrag:
Mit Ausnahme der Aufgabe 3 sind alle innerhalb weniger Minuten mit Basis-SQL-Wissen zu meistern.

Bei Aufgabe 3 bin ich mir sicher, dass der Lehrer die Konsequenzen der Anfrage nicht bewusst ist. Überschneidungen von 2 Perioden ist zwar nicht schwer, aber etwas komplexer als der Rest der Aufgaben
 
Hi,

also zu Aufgabe 1.:

SELECT raumnr FROM raum WHERE kategorie ='B' AND filialnr = 12345 AND betten<1 AND preis = 100;

Aufgabe 2:

SELECT kundennr, telnr FROM kunde WHERE raum.raumnr=15 AND raum.filialnr=54321;

Aufgabe 3:

SELECT ...

Aufgabe 4,5,6,7:

SELECT filialnr FROM filiale oder muss ich INSERT TO eingeben?

Hab ich was richtig gemacht?
 
1) Jepp
SQL:
SELECT
	r.raumnr
FROM
	raum AS r
WHERE
	r.kategorie = 'B'
	AND r.filialnr = 12345
	AND r.betten > 1
	AND r.preis > 100;

2) Du musst den Raum noch mit dem Kunden verbinden. Da hast da im WHERE die Tabelle raum, im FROM-Teil jedoch nicht -> Error

4)5) Jepp, INSERT INTO

6)7) Nein, UPDATE
 
Zuletzt bearbeitet von einem Moderator:
Damit ich es richtig verstehe:

2) SELECT kundennr, telnr FROM kunde, raum WHERE r.raumnr=15 AND r.filialnr=54321; ist das korrekt?

die 3 aufgabe kapier ich nicht so recht!

4) INSERT INTO filiale... hier hab ich ein problem weil ich mit raum verbinden muss und ich weiß nicht wie ich es machen muss.

5)INSERT INTO filiale VALUES(1324, 'Hotelgasse' 8, 12131, 'Berlin', 3);

6) UPDATE kunde SET strasse='Allee-Strasse", hausnr=12, plz=42853, stadt='Remscheid' WHERE kundenr=3243;

7) UPDATE filiale SET sterne=5 WHERE stadt='München' AND sterne=4;
 
Lass die 3te mal. Die ist komplexer als dein Lehrer meint. Besser du schaust mal, dass die anderen alle funktionieren. Wenn du dann noch Zeit hast, kannst du diese immer noch angehen.

Erstens. Bitte die SQL-Statements formatiert in SQL-Tags setzen (wie das geht steht in meiner Signatur)

2) Nicht ganz. Raum und Kunde müssen noch verknüpft werden. Sie sind doch über die Reservierung verknüpft.
Und in der Reservierung ist die Raumnummer bereits drin. Also lassen wir den Raum weg und verknüpfen nur die Reservierung mit dem Kunden.

4) Nope, nix verknüpfen. Schau mal was du alles enfügen musst und was für Felder die Tabelle Raum hat.

5) Schau dir das INSERT INTO in der Anleitung nochmals genauer an. DieAuflistung der Felder fehlt.

6) Du beginnst da einen String mit einem ' und beendest ihn mit einem ". Ansosnten sieht es gut aus

7) Jepp
 
kunde: {[ kundennr, vorname, nachname, strasse, hausnr, plz, stadt, telnr ]}
filiale: {[ filialnr, strasse, hausnr, plz, stadt, sterne ]}
raum: {[ raumnr, filialnr, betten, kategorie, preis]}
reservierung: {[ reservierungsnr, filialnr, kundennr, raumnr, beginn, ende ]}
belegung: {[ belegungsnr, reservierungsnr, checkin, checkout, gesamtpreis ]}

3. Eine Liste mit Raumnummer, Filialnummer und Kundennummer sowie Vor- und Nachname des jeweiligen Kunden für alle Reservierungen von Filialen aus Hamburg, bei denen der Aufenthalt zwischen dem 01.07.2011 und dem 31.12.2011 beginnt. Die Liste soll absteigend nach Kundennamen (erst Nachname, dann Vorname) sortiert werden.


Ich versuch mich mal an der 3er...

SQL:
SELECT
      r.raumnr, r.filialnr, r.kundennr, k.vorname, k.nachname
FROM
      reservierung AS r
INNER JOIN
      kunde AS k ON r.kundennr = k.kundennr
INNER JOIN
      filiale AS f ON r.filialnr = f.filialnr
WHERE
      f.stadt = 'Hamburg'
      AND
      r.beginn BETWEEN '01.07.2011' AND '31.12.2011'
ORDER BY
      k.nachname DESC
      k.vorname DESC

Speziell beim BETWEEN-Teil bin ich mir unsicher, hab noch nicht mit fixen datetime-Angaben gearbeitet. Timestamps sind um einiges bequemer!

kurze Hilfestellung zu 6, 7:
SQL:
UPDATE
       tabelle1
SET
       feld1 = 'value1'
WHERE
       id = '111'
 
Zuletzt bearbeitet von einem Moderator:
also:

2)
SQL:
SELECT kundennr, telnr 
FROM kunde, reservierung 
WHERE raumnr=15 
AND filialnr=54321;

4)
SQL:
SELECT INTO raum
(raumnr, filialnr, betten, kategorie, preis)
VALUES(111, 63746, 1, 'B', 120);

5)
SQL:
INSERT INTO filiale
(filialnr, strasse, hausnr, plz, stadt, sterne) 
VALUES(1324, 'Hotelgasse', 8, 12131, 'Berlin', 3);

6)
SQL:
UPDATE kunde 
SET strasse='Allee-Strasse', hausnr=12, plz=42853, stadt='Remscheid' 
WHERE kundenr=3243;

Könntest du mir bitte die aufgabe 3 lösen?
 
Zuletzt bearbeitet von einem Moderator:
Zurück