2012-09-04 3 views
1

J'ai deux tables liées:Comment afficher les lignes qui ne répondent pas aux critères

Case_Table:     Case_Clients 
           Client_ID (int, identity) 
    Case_ID (int, identity) --- Case_ID (int) 
    Conference_ID (int)   Relationship_ID (int) 
    Other Stuff 

est Ci-dessous l'instruction SQL à la liste tous les enregistrements qui a un chef de famille:

SELECT Case_Table.Case_ID, 
      Case_Table.Conference_ID, 
      Case_Clients.Client_ID, 
      Case_Clients.Relationship_ID 
    FROM Case_Clients INNER JOIN 
      Case_Table ON Case_Clients.Case_ID = Case_Table.Case_ID 
    WHERE (Case_Clients.Relationship_ID = 1) 

Le L'entreprise exige que chaque cas ait un chef de famille, et nous avons pris des mesures pour l'appliquer, mais nous avons toujours les cas existants qui n'ont pas de chef de famille. Je sais que j'ai plus de 100 cas sans chef de ménage (Relationship_ID = 1). En cours ... ce que j'essaie de faire est de lister le Conference_ID et Case_ID pour chaque enregistrement dans Case_Table qui n'a pas de chef de ménage dans Case_Clients.

Répondre

1

Vous pouvez utiliser NOT IN pour récupérer les enregistrements CaseTable qui ne sont pas des enregistrements dans Case_ClientsRelationshipID = 1 (en supposant que la tête est-de-ménage enregistrement).

SELECT Case_Table.Case_ID, Case_Table.ConferenceID 
FROM Case_Table 
WHERE CaseTable.Case_ID NOT IN (
    SELECT Case_ID 
    FROM Case_Clients 
    WHERE RelationshipID = 1 
) 
+0

Cela a fait l'affaire, je pense. Et le regarder et voir que la solution est si simple suffit à me faire sentir un peu gêné. Merci pour la solution rapide. –

Questions connexes