2014-02-19 4 views
0
CUSTOMER(cid, cname, ccity) 
TICKET(tid, cid, pricepaid, milespaid, date)   - cid references CUSTOMER.cid 
FLIGHT(fid, deptapc, arrapc, dept, arr, milesgiven) 
deptapc and arrapc reference AIRPORT.apc 
FLIGHTTICKET(tid, fid, date) - tid references TICKET.tid and fid references FIGHT.fid 
AIRPORT(apc, aname, acity) 

Выведите запрос на получение информации о любом клиенте, который был в каждом аэропорту базы данных. (Достаточно пройти через аэропорт во время смены боев, поэтому он не обязательно должен быть конечным пунктом назначения).SQL-запросы базы данных, сравнить значения

Я пишу это, чтобы показать количество аэропорта, что каждый клиент был в:

Select cid,count(cid) 
From(SELECT cid, deptapc 
FROM CUSTOMER 
Natural join TICKET Natural join FLIGHTTICKET Natural join FLIGHT 
UNION 
SELECT cid, arrapc 
FROM CUSTOMER 
Natural join TICKET Natural join FLIGHTTICKET Natural join FLIGHT) 
Group by cid; 

, но я не знаю, как сравнить каждое значение с общим количеством аэропорта, чтобы увидеть, если они являются же

Select count(apc) 
From AIRPORT 

ответ

0

легко вы просто использовать подзапрос, как вы уже делали в ОТ:

SELECT cid, 
     Count(cid), 
     (Count(cid) = (SELECT Count(apc) 
         FROM airport)) AS result 
FROM (SELECT cid, 
       deptapc 
     FROM customer 
       natural JOIN ticket 
       natural JOIN flightticket 
      natural JOIN flight 
     UNION 
     SELECT cid, 
       arrapc 
     FROM customer 
       natural JOIN ticket 
       natural JOIN flightticket 
       natural JOIN flight) 
GROUP BY cid; 
Смежные вопросы