Announcement

Collapse
No announcement yet.

Mehrfach Selection von Einträgen?

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

  • Mehrfach Selection von Einträgen?

    Hallo,

    ich habe ein (für mich) relativ komplexes Problem mit einem SQL Select auf einem MSSQL Server (2003 und 2008) System und hoffe, dass mir hier irgendwer helfen kann.

    Folgender Sachverhalt:

    Derzeit selectiere ich in einer einfachen SELECT Anwesiung aus einer Datenbank-Tabelle alle Einträge. Das Recordset wird dann auf einer Website angezeigt und nach einem bestimmten Feld der Tabelle (Feldname: Bezirk) gruppiert dargestellt.


    Ausgabe sieht Beispielweise so aus:

    PHP Code:
    BezirkLorem
    ------------------------------------------------------------------------
    ID1   Name1   Adresse1   GebDat1   Anmerkung1
    ID2   Name2   Adresse2   GebDat2   Anmerkung2
    ID3   Name3   Adresse3   GebDat3   Anmerkung3
    ID4   Name4   Adresse4   GebDat4   Anmerkung4

    Bezirk
    Ipsum
    ------------------------------------------------------------------------
    ID5   Name5   Adresse5   GebDat5   Anmerkung5
    ID6   Name6   Adresse6   GebDat6   Anmerkung6
    ID1   Name1   Adresse1   GebDat1   Anmerkung1 
    (<--- Sonderfall!)
    ID3   Name3   Adresse3   GebDat3   Anmerkung3 (<--- Sonderfall!)

    BezirkDolor
    ------------------------------------------------------------------------
    ID7   Name7   Adresse7   GebDat7   Anmerkung7
    ID8   Name8   Adresse8   GebDat8   Anmerkung8
    ID9   Name9   Adresse9   GebDat9   Anmerkung9
    ID1   Name1   Adresse1   GebDat1   Anmerkung1 
    (<--- Sonderfall!) 

    Nun hat sich jedoch eine weitere Anforderung ergeben:

    Bestimmte Einträge der Tabelle sollen unter mehreren Bezirken (also mehrfach in der Übersicht) aufscheinen! Hierzu gibt es ein Datenbankfeld, welches kommasepariert die IDs jener Bezirke enthält wo der betreffende Eintrag zusätzlich aufscheinen sollen (siehe "<--- Sonderfall!" in obenstehender Darstellung).

    Wie kann man das mittels einer SELECT Anweisung lösen?

    Würde mich sehr über eure Hlfe freuen!

    beste Grüße,
    Martin

  • #2
    Hallo,

    direkt mit der komma-separierten Liste fällt mir kein Weg ein. Aber prinzipiell geht so etwas mit einem UNION.

    Gruß Jürgen

    Comment


    • #3
      Originally posted by Jürgen Thomas View Post
      direkt mit der komma-separierten Liste fällt mir kein Weg ein. Aber prinzipiell geht so etwas mit einem UNION.
      Hallo Jürgen, soweit mir bekannt ist verwendet man den UNION Operator doch bei einer Selection aus mehreren Tabellen!?

      Ich möchte aber bestimmte Einträge mehrfach aus einer(!) Tabelle selectieren.

      beste Grüße,
      Martin

      Comment


      • #4
        Hallo Martin,

        UNION kombiniert mehrere Abfragen mit gleichartiger Ergebnismenge (Anzahl und Typen der Spalten). Das können durchaus auch Abfragen auf die gleichen Tabellen sein.

        Wie gesagt: Ich habe keine Idee, wie du das umsetzen kannst mit der ID-Liste.

        Gruß Jürgen

        Comment


        • #5
          Vielleicht lässt sich das in der WHERE-Klausel lösen:

          ... where CHARINDEX(',' + cast(id as varchar) + ',', ',' + id_string + ',') > 0 and ...


          Das mit dem ',' vor und hinter der id sowie dem id_string ist bewusst, ansonsten sucht man zB nach id '2', die wäre aber so auch in '12' oder '21' drinnen.

          bye,
          helmut

          Comment


          • #6
            Transformiere Deine kommaseparierte ID in eine Tabelle und joine diese dann
            Idee dazu von OHelper hier

            Comment

            Working...
            X