Announcement

Collapse
No announcement yet.

Bestimmte Datensätze filtern

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

  • Bestimmte Datensätze filtern

    Hallo,
    ich bin blutiger Anfänger und komme mit einer Abfrage nicht zurecht:

    Das Problem: Ich habe eine Tabelle mit 2 Spalten: Aktenzeichen (Text 16 Zeichen) und Fallnummer (Text 18) Zeichen.
    Es sind in der Tabelle mehrere Datensätze mit dem gleichen Aktenzeichen vorhanden und es sollte zu diesem Aktenzeichen auch eine bestimmte Fallnummer gehören. Also pro Aktenzeichen eine Fallnummer.

    Das ist aber leider nicht der Fall. In einigen Datensätzen sind für ein Aktenzeichen mehrere Fallnummern vorhanden. Wie filtere ich diese Datensätze heraus?

    Ich habe es mit folgendern Abfrage probiert:

    SELECT DISTINCT AKTENZEICHEN, FALLNUMMER
    FROM TABELLE
    WHERE (((AKTENZEICHEN) In (SELECT [AKTENZEICHEN] FROM [TABELLE] As Tmp GROUP BY [AKTENZEICHEN] HAVING Count(*)>1 )
    AND (([tLsb_FA]![FAX_AKTENZ])<>""))
    And ((tLsb_FA.FAX_AKTENZ)>"9999999" Or (tLsb_FA.FAX_AKTENZ)<"30000000"))
    ORDER BY AKTENZEICHEN;

    (Alle Datensätze die kein Aktenzeichen haben und nur Datensätze mit Aktenzeichen zwischen 10000000 und 29999999)

    Leider passt das Ergebnis nicht. Was mache ich falsch?
    Vielen Dank für Eure Hilfe!

    Gruß
    Diddlone
    Zuletzt editiert von Diddlone; 22.08.2008, 09:22.

  • #2
    Hallo Diddlone,

    sorry, aber ich verstehe nicht so ganz, was Du genau möchtest, den Du widersprichtst Dich in Deiner Aussage selbst und das SQL Statement geht wiederum in eine andere Richtung.

    Du arbeitest sonst mit Access, stimmts?
    Sieht man am ! im Statement, der SQL Server mag das hingegen gar nicht.

    Also, wenn Du alle Aktenzeichen (im Range)+Fallnummer haben willst, die mehrfach vorkommen:

    [highlight=SQL]SELECT FAX_AKTENZ, Fallnummer, Count(*) AS Anzahl
    FROM tLsb_FA
    WHERE FAX_AKTENZ BETWEEN '10000000' AND '29999999'
    GROUP BY AKTENZEICHEN, Fallnummer
    HAVING Count(*) > 1 [/highlight]

    In Deinem SQL hast Du die Fallnummer ziemlich ignoriert.

    Wenn es das nicht ist, muss Du noch einmal genau beschreiben, was / wie selektiert werden soll.
    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


    • #3
      Bestimmte Datensätze filtern

      Guten Morgen,

      ich gebe am besten mal ein Beispiel:
      Aktenzeichen Fallnummer
      1000121 10527
      1000122 10533
      1000122 10644
      1000123 10655
      1000124 10673
      1000125 10711
      1000125 10711
      1000126 10713
      1000127 10715
      1000127 10718

      Ergebnis sollte sein:
      Aktenzeichen Fallnummer
      1000122 10533
      1000122 10644
      1000127 10715
      1000127 10718

      Ich möchte also wissen wie oft gleiche Aktenzeichen mit unterschiedlichen Fallnummern auftauchen.
      Wenn ich Deine Abfrage richtig verstehe bekomme ich als Ergebnis wie oft ein Aktenzeichen vorkommt. - richtig?

      Gruß
      Diddlone

      Comment


      • #4
        Ok, das ist dann schon klaren.

        Kannst Du so selektieren:

        [highlight=SQL]SELECT *
        FROM tLsb_FA
        WHERE Aktenzeichen IN
        (SELECT Aktenzeichen
        FROM tLsb_FA
        WHERE AKTENZEICHEN BETWEEN '10000000' AND '29999999'
        GROUP BY AKTENZEICHEN
        HAVING Count(*) > 1)[/highlight]

        Das vorherige Statement liefert Dir alle Aktenzeichen+Fallnummer, die mehrfach auftreten.
        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


        • #5
          Bestimmte Datensätze filtern

          Prima!

          hat mir schon sehr viel weiter geholfen.

          ich habe jetzt noch nach Aktenzeichen sortiert, also noch ein "Order by Aktenzeichen" angehängt.
          Allerdings sortiert er nicht die Datensätze aus, bei denen die Fallnummer in Ordnung ist.

          Z.B:
          1000125 10711
          1000125 10711

          Das Aktenzeichen kommt zwar mehrfach vor, aber die Fallnummer ist gleich - also OK.
          Gruß
          Diddlone

          Comment

          Working...
          X