2014-02-19 104 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) 

輸出去過數據庫中每個機場的任何客戶的cid。 (在換戰鬥的時候穿過機場就足夠了,所以它不一定是最後的目的地)。數據庫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

容易,你只需要使用子查詢,你已經做了在FROM:

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;