ERLEDIGT
NEIN
NEIN
ANTWORTEN
0
0
ZUGRIFFE
267
267
EMPFEHLEN
-
Hallo Zusammen,
tutorials.de habe ich gut in Erinnerungen, wenn es um komplizierte Abfragen geht. Das Internet habe ich schon durchstöbert, konnte leider nichts passendes finden - womöglich habe ich aber auch mit den falschen Fragmeneten gesucht.
Zu meinem Problem.
Ich habe eine DB die wie folgt aufgebaut ist:
Position a_ID Referenz Name a 0 66 K a 1 66 D a 4 77 J a 6 77 S a 7 88 J a 8 88 S a 9 88 N b 2 00 J b 3 00 B b 5 00 S b 10 99 B b 11 99 J
Jetzt möchte ich am Liebsten eine Auswertung haben die mir ein Ergebnis wie folgt gibt:
Position Name Count Referenz a K 1 a D 1 a J 2 a S 2 b J 2 b B 2
Zur Erläuterung:
Innerhalb einer Position (z.B. a) gibt es über die Referenz (z.B. 66, 77) Verkettungen zu den Namen. D.h. die Datensätze "a, 4, 77, J" und "a, 7, 88, J" zeigen, dass die Position bei der Referenz 77 und 88 einen Namen "J" hat. Die Datenbank soll mir nun die Datensätze ausgeben, bei denen auch bei den Referenzen 77 und 88 und Position a ein gleicher Name steht. Demnach kommt man zum Ergebnis "a, J, 2" und "a, S, 2". (3. und 4. Wert der Auswertung.) Die ersten beiden Datensätze "a, K, 1" und "a, D, 1" stehen bei Position a nur in der Referenz 66. Weil die Referenz 66 zu den Referenzen 77 und 88 keinen gleichen Namen hat, sollen die Namen K und D angezeigt werden.
Bei den Datensätzen mit der Position b konnte ich mir wie folgt helfen, habe es aber auch nicht geschaft die Anzahl der Referenz mitzutransportieren:
1. Tabelle erzeugt:
Code :1 2
<-- SELECT INTO QUERY - Anzahl Name--> SELECT Position, COUNT(DISTINCT Referenz) AS Anzahl INTO AnzName FROM Referenz GROUP BY Position
2. Tabelle erzeugt:
Code :1 2 3
<-- SELECT INTO QUERY - Auflistung Name--> SELECT Position, Name, COUNT (*) AS AnzName INTO Aufstellung From Referenz GROUP BY Position, Name
3. Die Auswertung:
Code :1 2 3 4
SELECT Aufstellung.Position, Aufstellung.Name, Aufstellung.AnzName, AnzName.Anzahl From Aufstellung INNER JOIN AnzName ON AnzName.Position = Aufstellung.Position WHERE AnzName.Anzahl= Aufstellung.AnzName ORDER BY Position, Name
Das klappt auch für den Fall b. Aber es zählt nur die Referenz und wertet diese aus. Sobald eine weitere Referenz ohne Verkettung im Datensatz ist passt meine Lösung selbstverständlich nicht mehr, da die Anzahl der Namen höher ist, als mögliche Verkettungen im Datensatz stehen.
Ich hoffe, ich konnte mein Problem verständlich schildern und Ihr könnt mir helfen! Vielen Dank schon mal!
Viele Grüße
LudwigKGeändert von LudwigK (07.02.12 um 09:36 Uhr)
Ähnliche Themen
-
[MSSQL] Vergleich von Daten in einer Tabelle
Von Fluffy im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 27.04.10, 09:17 -
[richFaces] Tooltip für einzelne Reihen einer Tabelle
Von Bexx im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 04.03.10, 16:15 -
MSSQL: Problem beim joinen einer Tabelle und einer Sicht
Von dako112 im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 09.09.08, 11:36 -
[MSSQL] Ausgabe einer Tabelle mit nvarchar und ntext-Spalten über PHP
Von Ceppi im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 09.01.08, 11:27 -
[MySQL] Abhängigkeit von Spalten innerhalb einer Tabelle
Von Kerwin im Forum Relationale DatenbanksystemeAntworten: 5Letzter Beitrag: 09.05.05, 22:32





Zitieren
Login





