tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
0
ZUGRIFFE
267
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    LudwigK LudwigK ist offline Rookie
    Registriert seit
    Feb 2012
    Beiträge
    1
    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
    LudwigK
    Geändert von LudwigK (07.02.12 um 09:36 Uhr)
     

Ähnliche Themen

  1. [MSSQL] Vergleich von Daten in einer Tabelle
    Von Fluffy im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 27.04.10, 09:17
  2. [richFaces] Tooltip für einzelne Reihen einer Tabelle
    Von Bexx im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 0
    Letzter Beitrag: 04.03.10, 16:15
  3. MSSQL: Problem beim joinen einer Tabelle und einer Sicht
    Von dako112 im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 09.09.08, 11:36
  4. [MSSQL] Ausgabe einer Tabelle mit nvarchar und ntext-Spalten über PHP
    Von Ceppi im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 09.01.08, 11:27
  5. [MySQL] Abhängigkeit von Spalten innerhalb einer Tabelle
    Von Kerwin im Forum Relationale Datenbanksysteme
    Antworten: 5
    Letzter Beitrag: 09.05.05, 22:32