Oracle
 sql >> Base de données >  >> RDS >> Oracle

Utilisation de plusieurs requêtes imbriquées dans Oracle DBMS

Votre requête :

SELECT Email, Phonenumber
FROM EMPLOYEE
WHERE COUNT(
ID = (SELECT ID_Num
FROM SCHEDULE
WHERE Start_Time <= 12:07 AND End_Time >= 12:07)
AND Shopn = (SELECT Shopname
FROM SHOP
WHERE Shoptype = ‘market’) ) > 2

Problèmes :

  1. Il semble que vous essayez de sélectionner l'identifiant en utilisant l'opérateur "=" qui échouera en cas d'entrées multiples renvoyées par la requête interne.
  2. Vous ne pouvez pas ajouter d'opérateurs d'agrégation dans la clause where.

Réponse probable :

select Email, Phonenumber
FROM EMPLOYEE
WHERE ID in (SELECT ID_Num
FROM SCHEDULE
WHERE Start_Time <= '12:07' AND End_Time >= '12:07')
AND Shopn in (SELECT Shopname
FROM SHOP
WHERE Shoptype = 'market')
and (  
select count(distinct id)
FROM EMPLOYEE
WHERE ID in (SELECT ID_Num
FROM SCHEDULE
WHERE Start_Time <= '12:07' AND End_Time >= '12:07')
AND Shopn in (SELECT Shopname
FROM SHOP
WHERE Shoptype = 'market')) > 2;