MS SQL Kreuztabelle

  • C#

    MS SQL Kreuztabelle

    Guten Morgen zusammen!

    Ich hab hier eine SQL Datenbank mit Relationen. Diese hab ich in ein WPF-Projekt eingebunden und ich kann die Daten der 1:n-Relationen problemlos mit den automatisch generierten Tableadaptern anzeigen. Soweit erstmal alles ok.


    Die 4 Tabellen Teilanlagen, Ausgänge, Eingänge und Sollwerte werden mit Werten initialisiert, wobei jeder Eintrag in Ausgänge, Eingänge und Sollwerte eine Nummer beinhaltet welche die Zugehörigkeit zur Teilanlage angibt.
    Mein Problem besteht nun darin, wie man es umsetzt dass zu jedem vom Anwender hinzugefügten Eintrag in der Tabelle Schritte auch die richtige Anzahl Childs hinzugefügt werden.

    Ein Beispiel:
    Teilanlage 1 hat 5 Ausgänge, 3 Eingänge und 12 Sollwerte. Wird nun ein neuer Schritt hinzugefügt, muss auch diese neue Zeile mit drei neuen Einträgen in SchritteAusgänge, 5 in SchritteEingänge und 12 in Schritte Sollwerte verknüpft werden. Die aktuell gewählten einträge in Teilanlage und Rezepte weiß ich ja durch Auswertung der angebundenen ViewSource der WPF-Elemente.

    Warum das ganze?
    Am Ende möchte ich eine Ansicht haben wie im Bild dargestellt. Das heißt es kommt noch die weitere Schwierigkeit hinzu, dass abhängig von der Auswahl der Tabellen Teilanlage und Rezepte jeweil alle Schritte mit den zugehörigen informationen angezeigt werden sollen.



    Was ich bisher schon versucht bzw. rausgefunden haben:
    - Die Detailansicht im Bild "Ergebnis" könnte sich mit Hilft einer ListView wohl besser lösen lassen, indem die Detail-Elemente rechts vom Schrittnamen angezeigt werden. Ich denke das ist eher ein WPF-Design-Thema.
    - Für die Verknüpfung der daten aus den M:N-Verknüfungen nimmt man Joins entweder in der SQL-Abfrage oder per Linq. Allerdings wird es schwierig die Daten als Kreuztabelle bereitzustellen. Hier liegt mein Hauptproblem. Ein Versuch war die Daten in der Tabelle SchritteAusgänge per PIVOT-Anweisung zu drehen, allerdings fehlt dann wieder die Zuordnung einzelner Zellen zum jeweiligen Schritt. Ich habe die drehung der Daten auch mal durchgeführt indem ich das ganze per For-Schleifen bearbeitet habe, allerdings wird dann die Bindung zur Datenbank mindestestens genauso kompliziert, da erst wieder alles zerpflückt werden muss.
    - Ich hab mir auch schon mehrmals die Videos vom EDR (VierViews) angesehen. Hier wird ja auch das m:n-Thema besprochen, allerdings nicht in der Weise wie ich sie benötige. Zumndest habe auch ich den objektorientierten Weg gewählt und viele Dinge durch den Designer erstellen lassen was soweit auch genau wie in den Videos funktioniert bzw. nach anpassung genauso wie ich es gern hätte.

    Was wird gesucht?
    Ich hoffe ich habe mich soweit verständlich ausgedrückt. Ich würde Euch bitten mir Hinweise darauf zu geben, mit welchem Weg ich zur gewünschten Lösung komme. Dies muss nicht zwingend Code sein. Die meisten SQL-tutorials und anweisungen hab ich mir schon angesehen, allerdings wurde es dadurch auch nicht besser. Sollte jemand was am Datenmodell auszusetzen haben, weil es evtl. von der Denkweise her schon falsch ist, dann lassen sich die Relations auf jeden Fall schnell ändern.

    Sollte noch was unklar sein kann ich gern was dazu schreiben.

    Grüße
    Bilder
    • Stuktur.png

      45,97 kB, 813×416, 124 mal angesehen
    • Ergebnis.png

      86,05 kB, 1.444×591, 128 mal angesehen
    Der Beitrag wurde aus 100% wiederverwendbaren Elektronen erstellt!