sql >> Databasteknik >  >> RDS >> Oracle

Använda flera kapslade frågor i Oracle DBMS

Din fråga:

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

Problem :

  1. Det verkar som om du försöker välja id med operatorn "=" som kommer att misslyckas om flera poster returneras av inre fråga.
  2. Du kan inte lägga till aggregerade operatorer i where-satsen.

Troligt svar:

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;



  1. Självrefererande begränsning i MS SQL

  2. problem med GROUP_CONCAT i JOIN-frågan mysql

  3. MariaDB JSON_SET() Förklarad

  4. Undertryck ORA-00942-fel i ddl-skapande skript