2014-06-12 4 views
2

J'ai 2 tablescomment compter le nombre de lignes dans la table dérivée?

emp (id , name) 
cust(id, name) 

Maintenant, je veux nombre de lignes dans le résultat de

q=select emp.id from emp,cust where emp.id not in (select id from cust); 

Pour cette Je suis en train de poser requête:

select count(*) 
from (select emp.id 
     from emp,cust 
     where emp.id not in (select id from cust)); 

Mais je reçois un erreur:

Every derived table must have alias name"

Quelle est la bonne requête pour compter les lignes dans le résultat de q?

+0

S'il vous plaît envisager de marquer une réponse (case à cocher ci-dessous les votes) si l'un de ceux-ci vous a aidé. Bonne chance! – paqogomez

Répondre

3

UTILISER UN ALIAS;

select count(*) from 
    (
    select emp.id from emp where emp.id not in (select id from cust) 
    )A; 
+0

Excellente réponse, bien que votre mise en forme (majuscules, alignement de code) pourrait utiliser un peu de travail. ;-) +1 – paqogomez

1

@ La réponse de vjhil est correcte, mais je crois que votre requête pourrait être grandement simplifiée pour:

select count(*) 
from 
    emp 
where 
    emp.id not in (select id from cust) 

Ou encore à:

select count(*) 
from 
    emp e 
    left join cust c on e.id = c.id 
where 
    c.id is null 
0

Mettre un alias devant sous_requête et essayez d'exécuter.

select count(*) from (select emp.id from emp,cust where emp.id not in (select id from cust)) a; 
Questions connexes