richtige Abfrage

05/04/2008 - 09:55 von Mario Krsnic | Report spam
Hallo zusammen,
ich habe die folg. Tabellenstruktur:
IdLeistung (text), Leistung (Text), 1(erster Tag, Zahl), 2(zweiter Tag,
Zahl) ...usw. 31(31.Tag, Zahl), Anfangs_Uhrzeit (Data/Time), Monat(Zahl),
Jahr(Zahl)
Alle Leistungen, die die gleiche Anfangszeit haben, gehören zu einem und
gleichen Einsatz.
So könnte ich alle Einsàtze in einem Monat so auflisten:
"select distinct uhrzeit from TblLeistungen where Monat= 4 und Jahr= 2008"
und alle Leistungen so:
"select * from TblLeistungen where Monat= 4 und Jahr= 2008"
Meine Aufgabe ist es aber jetzt die Einsàtze nach Tag und Uhrzeit zu
sortieren und aufzulisten und im Rahmen jedes
Einsàtzes, die in ihm enthaltenen Leistungen. Ich habe das so versucht:

Set rs = db.OpenRecordset("select * from TblLeistungen where Monat= 4 und
Jahr= 2008")
dim Y%
For Y = 2 To 32
rs.MoveFirst
While Not rs.EOF
If rs(Y).Value > 0 Then
Text1 = Text1 & "Einsatz am " & Y - 2 & " . EinsatzUhrzeit: " & rs!Uhrzeit
& vbCrLf
Text1 = Text1 & "Leistung: " & rs!Leistung & vbCrLf
End If
rs.MoveNext
Wend
Next Y

Ich bekomme das folg. Ergebnis:

Einsatz am 2 . EinsatzUhrzeit: 07:00:00
Leistung: Leistung 1
Einsatz am 2 . EinsatzUhrzeit: 07:00:00
Leistung: Leistung 2
Einsatz am 2 . EinsatzUhrzeit: 07:00:00
Leistung: Leistung 3

Es sollte aber so sein:
Einsatz am 2 . EinsatzUhrzeit: 07:00:00
Leistung: Leistung 1
Leistung: Leistung 2
Leistung: Leistung 3

Wie soll ich das umsetzen? Gibt es da eine kluge SQL-Abfrage?
Entschuldigun für etwas umstàndliche Erklàrung. Ich konnte es nicht
einfacher.
Gruss
Mario
 

Lesen sie die antworten

#1 Thomas Möller
05/04/2008 - 10:18 | Warnen spam
Hallo Mario,

"Mario Krsnic" schrieb:
ich habe die folg. Tabellenstruktur:
IdLeistung (text), Leistung (Text), 1(erster Tag, Zahl), 2(zweiter
Tag,
Zahl) ...usw. 31(31.Tag, Zahl), Anfangs_Uhrzeit (Data/Time),
Monat(Zahl),
Jahr(Zahl)
Alle Leistungen, die die gleiche Anfangszeit haben, gehören zu einem
und
gleichen Einsatz.
So könnte ich alle Einsàtze in einem Monat so auflisten:
"select distinct uhrzeit from TblLeistungen where Monat= 4 und Jahr=
2008"
und alle Leistungen so:
"select * from TblLeistungen where Monat= 4 und Jahr= 2008"
Meine Aufgabe ist es aber jetzt die Einsàtze nach Tag und Uhrzeit zu
sortieren und aufzulisten und im Rahmen jedes
Einsàtzes, die in ihm enthaltenen Leistungen. Ich habe das so
versucht:



Deine Probleme resultieren aus einem nicht sauber modellierten
Datenmodell. Du solltest Deine Tabellenstruktur noch einmal überdenken.
Schau Dir dazu mal diese Seite an:
http://www.me-asal.de/access/17-normalformen.htm
(Link in einer Zeile)

Mein Datenmodell hàtte wahrscheinlich folgende Tabellen:

tbl_Leistung
=- IDLeistung (Autowert / Primàrschlüssel)
- Leistung (Text)

tbl_Einsatz
- IDEinsatz (Autowert / Primàrschlüssel)
- Beschrebung (Text)

tbl_EinsatzLeistung
- IDEinsatzLeistung (Autowert / Primàrschlüssel)
- FKEinsatz (Long / Fremdschlüssel aus tbl_Einsatz)
- FKLeistung (Long / Fremdschlüssel aus tbl_Leistung)
- Einsatztag (Datum)
- Einsatzbeginn (Uhrzeit)

Mit diesem Datenmodell kannst Du die oben genannten Anforderungen mit
einfachen Abfragen erfüllen.


HTH
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen