2013-09-03 4 views
2

J'ai deux tables de données, on est:affichage manquant des lignes de tables de MSSQL

"cartes" Tableau qui contient:

id       Department 
0000022288      COR 
0000043880      NA 
0000031643      NA 
0000013870      TRAN 
0000053900      COR 
0000055452      IOR 
0000010957      IOR 
0000025746      BILL 
0000061783      BILL 
0000000773      NA 

J'ai une autre table (valid_entry):

date   emp_id emp_time 
20130101 0000002001 101825  
20130102 0000002001 085024  
20130103 0000002001 085657  
20130106 0000002001 095145  
20130107 0000002001 090724  
20130108 0000002001 091244  

Je veux afficher les ID qui ne sont pas dans une table valide.

ma requête:

SELECT emp_valid_date 
    , emp_valid_name 
    , emp_valid_time 
    , emp_valid_dept 
    , Name 
FROM valid_entry 
INNER JOIN Cards ON emp_valid_dept = Depart_Code 
WHERE emp_valid_date = '$date' 
    AND emp_valid_time >= 060000 
    AND emp_valid_time <= 230000 
    AND emp_valid_dept != 'DRI' OR emp_valid_time = '' 

Ce sera Okey si je peux obtenir quelque chose comme:

date   emp_id emp_time card_id_missing 
20130101 0000002001 101825  
20130102      0000002001 
20130103 0000002001 085657  
20130106 0000002001 095145  
20130107 0000002001 090724  
20130108 0000002001 091244 

Je veux quelque chose comme ça

+0

S'il vous plaît ajouter les colonnes et renommer manquants ceux qui existent déjà dans l'échantillon dans votre ' table valid_entry' pour correspondre à votre requête. – alzaimar

Répondre

1

Essayez cette requête

SELECT ID from Cards C 
    LEFT OUTER JOIN valid_entry VE 
    ON C.ID = VE.emp_id 
    WHERE VE.emp_id IS NULL 

SI vous avez besoin de dis lire toutes les lignes, puis supprimez la clause WHERE. Il retournera toutes les lignes, mais NULL pour les lignes de cartes, mais pas dans valid_entry

Raj

+0

Je l'ai essayé mais il retourne les lignes qui n'existent pas dans valid_entry. Je veux valid_entry + cartes (existé + pas existé) – iamlancer

+0

Réponse éditée. Vérifiez s'il vous plaît. – Raj

+0

ouais il affiche le résultat mais seulement de la table des cartes mais il ne montre pas les données de valid_entry – iamlancer

0

Quelque chose comme

SELECT * FROM cards WHERE id NOT IN (SELECT emp_id FROM valid entry) 
+0

désolé pas d'utilisation. Je souhaite que les données de valid_entry incluent également les lignes des cartes qui n'existent pas dans la table valid_entry. – iamlancer

+0

Ah d'accord. Ensuite, la solution Raj avec une jointure externe est la bonne solution. – tea2code

+0

Je l'ai essayé mais il retourne les lignes qui n'existent pas dans valid_entry. je veux valid_entry + cartes (existé + pas existé) – iamlancer

Questions connexes