Announcement

Collapse
No announcement yet.

Abfrage nach Kriterien filtern und Werte zurückliefern

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

  • Abfrage nach Kriterien filtern und Werte zurückliefern

    Hallo Zusammen

    Ich brauche Hilfe mit folgendem Problem.

    In folgender Tabelle will ich eine Abfrage machen, welche bestehende Werte zuerst filtert.

    Tabelle d hat folgende Felder:
    Code:
    id, projekt, cat_id 
    1    Haus     6 
    2    Block    7 
    3    Haus     1 
    4    Haus     3 
    5    Block    1 
    6    Block    1
    In der Tabelle sind diverse Projekte, welche mehrfach vorkommen, aber verschiedene cat_id's haben. Ich will nun auswerten, welche Projekte bspw. die Cat_id 1 und 7 haben. Cat_ids können bei einem Projekt mehrfach vorkommen.

    Ich danke schon im Voraus.

    Gruss
    Hopeless

  • #2
    Originally posted by hopeless_sqler View Post
    Hallo Zusammen

    Ich brauche Hilfe mit folgendem Problem.

    In folgender Tabelle will ich eine Abfrage machen, welche bestehende Werte zuerst filtert.

    Tabelle d hat folgende Felder:
    Code:
    id, projekt, cat_id 
    1    Haus     6 
    2    Block    7 
    3    Haus     1 
    4    Haus     3 
    5    Block    1 
    6    Block    1
    In der Tabelle sind diverse Projekte, welche mehrfach vorkommen, aber verschiedene cat_id's haben. Ich will nun auswerten, welche Projekte bspw. die Cat_id 1 und 7 haben. Cat_ids können bei einem Projekt mehrfach vorkommen.

    Ich danke schon im Voraus.

    Gruss
    Hopeless
    Sowas hier?

    Code:
    test=*# select * from hopeless ;
     id | projekt | cat_id
    ----+---------+--------
      1 | haus    |      6
      2 | block   |      7
      3 | haus    |      1
      4 | haus    |      3
      5 | block   |      1
      6 | block   |      1
    (6 rows)
    
    test=*# select projekt, array_agg(cat_id) from hopeless group by projekt having array_agg(cat_id) @> array[1,7];
     projekt | array_agg
    ---------+-----------
     block   | {7,1,1}
    (1 row)
    Andreas

    Comment


    • #3
      Hallo,

      ...oder mit etwas allgemeinerem SQL:
      [highlight=sql]
      select projekt from Tabelle_d
      where cat_id in (1, 7)
      having count(distinct cat_id) = 2
      [/highlight]

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment

      Working...
      X