PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : SQL Abfrage - Anfänger Frage


andre87
2009-06-19, 15:50:29
Hi, ich soll von einem Relationalem Datenmodell SQL abfragen machen.

Die Frage lautet:

Erstellen Sie eine Abfrage, die alle Vermietungen des Betreibers "Müller" vom 29.06 auflistet, sortiert nach Uhrzeit.
Geben sie das passende SQL Statement an.

So, als Relationen habe ich gegeben:

R Ruderboote (RNR, Farbe, Baujahr)
R Betreiber (BNR, Name, Straße, PLZ, Ort)
R "vermietet" (RNR,BNR, Datum, Zeit, Dauer)
--------


ka, ob ihr was damit anfangen könnt.
ich weiß nicht wie ich da vorgehen soll, es muss ja quasi ne selektion in der tabelle Betreiber stattfinden, also nur die die "müller" heißen angezeigt werden, und ne selektion bei "vermietet", nur am 29.06.
Aber wie verknüpfe ich das so, und vorallem wie ordne ich das nach datum?

mfg,

redfalcon
2009-06-19, 16:00:13
SELECT ruder.RNR, betreib.Name, betreiber.BNR, miet.Zeit
FROM Betreiber betreib, Ruderboote ruder, Vermietet miet
WHERE miet.BNR=
(SELECT BNR FROM Betreiber WHERE Name='Müller')
AND miet.Datum='29.06'
ORDER BY miet.Zeit;


Ohne Gewähr, so oder ähnlich würde ich das machen. Mit einer Subquery bekommst du erstmal die ID von "Müller" raus und vergleichst die dann erstmal mit den ID-Einträger in "Vermietet". Dann sagst du noch, dass nur Einträge vom 28.06 angezeigt werden sollen, und ordnest das ganze noch nach der Zeit.

andre87
2009-06-19, 16:02:29
hi, danke, sieht gut aus^^

allerdings hatten wir das noch nicht mit dieser select klausel im "WHERE Teil",
kann man das auch direkt über den Namen Müller machen und wenn ja, wie?

Asaraki
2009-06-19, 16:15:03
klar, wobei seine lösung schöner ist ;)


SELECT V.*
FROM VERMIETET V,
BETREIBER B
-- Die zwei ersten Where-Bedingungen selektieren Datum + Müller --
WHERE V.DATUM = '29.06.2009'
AND B.NAME = 'Müller'
-- Und hier stellen wir die Realtion sicher
AND V.BNR = B.BNR
ORDER BY V.ZEIT DSC

Matrix316
2009-06-19, 22:04:14
Hi, ich soll von einem Relationalem Datenmodell SQL abfragen machen.

Die Frage lautet:

Erstellen Sie eine Abfrage, die alle Vermietungen des Betreibers "Müller" vom 29.06 auflistet, sortiert nach Uhrzeit.
Geben sie das passende SQL Statement an.

So, als Relationen habe ich gegeben:

R Ruderboote (RNR, Farbe, Baujahr)
R Betreiber (BNR, Name, Straße, PLZ, Ort)
R "vermietet" (RNR,BNR, Datum, Zeit, Dauer)
--------


ka, ob ihr was damit anfangen könnt.
ich weiß nicht wie ich da vorgehen soll, es muss ja quasi ne selektion in der tabelle Betreiber stattfinden, also nur die die "müller" heißen angezeigt werden, und ne selektion bei "vermietet", nur am 29.06.
Aber wie verknüpfe ich das so, und vorallem wie ordne ich das nach datum?

mfg,
Eine Variante wäre auch so:

select a.Datum,a.Zeit,a.Dauer
from vermietet a inner join Ruderboote b on a.RNR = b.RNR
inner join Betreiber c on a.RNR = c.RNR
where c.Name = 'Müller' and a.Datum = '29.06'
order by a.Zeit