Announcement

Collapse
No announcement yet.

Hilfe bei einer Abfrage

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Hilfe bei einer Abfrage

    Hallo liebe Entwicklergemeinde,

    ich bin ein ziemlicher SQL-Noob, also entschuldigt bitte, wenn mein Problem für die Profis etwas zu banal ist.

    Ich habe in MS-SQL-Server eine "Personen"-Datenbank erstellt, die später mit einer C#-Oberfläche bedient werden soll. Diese enthält folgende Tabellen:

    1. Tabelle "basisdaten" mit Name, einer ID (als Primär-Key) und einigen anderen Grunddaten (die für meine Frage aber keine Rolle spielen)

    2. Tabelle "attribute" enthält eine Auflistung aller Fähigkeiten, die einer Person zugeordnet werden können mit der Bezeichnung der Fähigkeit, einer ID als Primär-Schlüssel (z.B. und einigen Voraussetzungen für bestimmte Attribute).

    da jede Person (aus Tabelle 1) mehrere Fähigkeiten (aus Tabelle 2) zugeordnet werden können (auch mit unterschiedlichen Werten), gibt es eine

    3.Tabelle die Tabelle 1 und 2 über die "Personen-ID" und die Fähikeiten-ID miteinander verknüpft, und jeder Person für jede Fähigkeit einen indivuellen Wert zuweist.

    Mein Problem:

    Ich möchte gerne eine Ausgabe (bzw. eine Tabelle) die Spaltenweise zu jeder Person alle Attribute mit entrechendem Wert (aus Tabelle 3) zuordnet. Eine normal Abfrage gibt immer das Ergebnis

    Person1 Attribut1 Wert_von_Attribut_1
    Person1 Attribut2 Wert_von_attribut_2
    Person2 Attribut1 Wert_von_Attribut_1
    .
    .
    .

    ich hätte aber lieber eine folgende Ausgabe:

    Person1 Attribut1 Wert_von_Attribut1 Attribut2 Wert_von_attribut2
    Person2 usw...

    Wie krieg ich das hin?

    Vielen Dank für die Mühe...

    Jens

  • #2
    Hallo Jens,

    das was Du möchtest nennt sich "Pivotisieren".
    In der BOL findest Du unter dem Begriff "Verwenden von PIVOT und UNPIVOT" und unter "PIVOT-Operator".

    Wie dann das SQL Statement aussieht, hängt von Deinen Daten ab; Beispiele findest Du ebenfalls in der BOL.
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment

    Working...
    X