1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

msSQL Anfrage -Nur Kd ,wo keine gekennzeichnte Ap anzeigen

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von mischanj, 25 Oktober 2011.

  1. mischanj

    mischanj Neuer Benutzer

    Hallo Liebe Forumgemeinde,

    ich benötige mal wieder eure Hilfe...
    Es gibt eine SQL Abfrage, die eigentlich einfach sein sollte...

    Zwei Tabellen eine "Ansprechpartner" (KD.id,AP.id,AP.Name) und andere "Ansprechpartner_Kennzeichen" (AP.ID,AP.KZ).Einem Kd.id können mehrere Ap.Id gehören.

    Ich brauche ein Select, wo alle KD.Id angezeigt werden bei denen entweder AP.KZ <>1 oder Ap.id gar nicht in Tabelle "Ansprechpartner_Kennzeichen" vorhanden ist.Beide Varianten sollen dann gleiche Ergebnisse bringen,da in der Tabelle "Ansprechpartner_Kennzeichen" nur mit 1 gekennzeichnete Ap.Id eingetragen werden.

    Vielen Dank im Voraus.
     
  2. ukulele

    ukulele Datenbank-Guru

    Beide Varianten dürfen eben nicht das selbe Ergebniss liefern da die Bedingung AP.KZ ungleich 1 voraus setzt, das eine AP.KZ vorhanden ist.

    Code:
    SELECT    KD.id
    FROM    Ansprechpartner
    WHERE    AP.ID IN (    SELECT    AP.ID
                        FROM    Ansprechpartner_Kennzeichen
                        WHERE    AK.KZ != 1 )
    OR        AP.ID NOT IN (    SELECT    AP.ID
                            FROM    Ansprechpartner_Kennzeichen )
     
  3. mischanj

    mischanj Neuer Benutzer

    Danke.Aber dein Vorschlag ist leider Falsch. Ich habe wahrscheinlich schlecht erklärt.
    Also noch mal. Ich brauche alle Kunden(KD.ID) von Tabelle "Ansprechpartner ,wo keinen von Ansprechpartnern (AP.ID) in der Tabelle "Ansprechpartner_Kennzeichen" vorhanden ist.

    Danke noch mal.
     
  4. ukulele

    ukulele Datenbank-Guru

    Das wäre dann der 2te Teil der Abfrage:
    Code:
    SELECT    KD.id
    FROM    Ansprechpartner
    WHERE    AP.ID NOT IN (    SELECT    AP.ID
                            FROM    Ansprechpartner_Kennzeichen )
     
  5. mischanj

    mischanj Neuer Benutzer

    Habe ich schon ausprobiert geht nicht.Falsche Ergebnisse.Es werden Kunden angezeigt(mehrmals,das kann man aber mit einem distinct lösen ),wo irgendein AP in der Tabelle "Ansprechpartner_Kennzeichen" nicht vorhanden ist.Und das sind fast alle.
     
  6. ukulele

    ukulele Datenbank-Guru

    Probier mal:
    Code:
    SELECT    KD.id
    FROM    Ansprechpartner
    WHERE    AP.ID IS NOT NULL
    AND        AP.ID NOT IN (    SELECT    AP.ID
                            FROM    Ansprechpartner_Kennzeichen
                            AND        AP.ID IS NOT NULL )
     
  7. mischanj

    mischanj Neuer Benutzer

    Danke.Habe die Lösung gefunden
    Code:
    SELECT KDID
    FROM  Ansprechpartner
    WHERE  KDID NOT In (SELECT KDID
                        FROM  Ansprechpartner AS A
                              INNER JOIN Ansprechpartner_Kennzeichen AS AKZ
                              ON A.ID = AKZ.ID)
     

Diese Seite empfehlen