Announcement

Collapse
No announcement yet.

Einfaches SELECT-Problem??

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

  • Einfaches SELECT-Problem??

    In einer Tabelle TB sind unter einer Schluessel-NR (in dem Feld Schluessel-NR) mehrere Datensatze mit jeweils einem Eintrag in dem Feld Fou_Nr enthalten. Ein Eintrag in dem Feld Fou_Nr enthält eine einzige Zahl aus dem Bereich 1 bis 7; also entweder nur 1 oder nur 2 oder usw 7.

    Ich möchte die Datensätze ermitteln, in denen in dem Feld Fou_Nr weder eine 1 noch eine 2 noch eine 3 noch eine 4 steht. Die Werte 5, 6 und 7 können in dem Feld Fou_Nr stehen; die interessieren mich nicht.

    Selektiere ich so:

    Code:
    SELECT Schluessel-NR FROM TB WHERE NOT (Fou_Nr between 1 and 4 )
    dann erhalte ich tatsächlich Datensätze, die in dem Feld Fou_Nr, die nicht die Zahleinträge 1 bis 4 haben. Schaue ich mir die ermittelte Schluessel-NR an, dann sehe ich, daß diese Schluessel-NR nicht nur einen Datensatz mit einen Wert > 4 in dem Feld Fou_Nr hat, sondern auch einen weiteren Datensatz hat, der einen Wert 1 bis 4 hat. So eine Schluessel-NR wollte ich nicht haben.

    Wie bekomme ich die Datensätze – und damit die Schluessel-NR – die überhaupt gar keinen Wert 1 bis 4 in dem Feld Fou_Nr haben?

    Ich bin völlig überfragt.

    Frohe Weihnachten und ein frohes Neues Jahr!

    Eckbert

  • #2
    Probiere es mal so:
    Code:
    SELECT Schluessel-NR FROM TB as tb1 WHERE NOT EXISTS
    (SELECT 1 FROM TB as tb2 WHERE tb2.Schluessel-NR = tb1.Schluessel-NR
    AND tb2.Fou_Nr between 1 and 4 )
    bye,
    helmut

    ps: ebenfalls frohe Weihnachten und guten Rutsch!

    Comment


    • #3
      Hallo,

      [highlight=sql]
      SELECT Schluessel-NR FROM TB a
      minus
      SELECT Schluessel-NR FROM TB b
      where b.Fou_Nr in (5,6,7);
      [/highlight]

      Gruß

      Martin

      P.S. Und nat auch schöne Weihnachtstage und einen guten Rutsch
      Zuletzt editiert von Martin R.; 21.12.2011, 13:32. Reason: Grüße

      Comment


      • #4
        a) wenn er aber nur die haben will, wo es keine mit 1 - 4 gibt, dann ist das genau verkehrt, so kriegt er alle die, die kein 5 - 7 haben.
        Müsste also so sein: ... WHERE b.Fou_Nr IN (1, 2, 3, 4);
        b) MINUS gibt es zB. im SQL-Server nicht. Da heisst das stattdessen EXCEPT

        bye,
        helmut

        Comment


        • #5
          Originally posted by hwoess View Post
          a) wenn er aber nur die haben will, wo es keine mit 1 - 4 gibt, dann ist das genau verkehrt, so kriegt er alle die, die kein 5 - 7 haben.
          Müsste also so sein: ... WHERE b.Fou_Nr IN (1, 2, 3, 4);
          b) MINUS gibt es zB. im SQL-Server nicht. Da heisst das stattdessen EXCEPT

          bye,
          helmut
          Da hast Du nat Recht. Wollte erst not in und habe dann in gewählt ohne den Inhalt zu verändern

          Comment

          Working...
          X