2014-04-08 21 views
0

因此,我尝试了一个嵌套子查询将三个表连接在一起以获取所需的列。如何将平均值添加到子查询中

SELECT CAPACITY, Course.COURSE_NAME, SEMESTER 
FROM COURSE, Section, Room 
WHERE Section.COURSE_NUM 
IN (SELECT Course.COURSE_NUMBER 
    FROM Course 
    WHERE SEMESTER='FALL' AND Section.ROOM 
    IN (SELECT Room.ROOM 
    FROM Room 
    WHERE AVG(CAPACITY)>CAPACITY 
) 
) 

我有它的第二子查询之前,我只需要显示的结果大于平均值的列柱容量没事。所以这是嵌套子查询之前的输出。

SELECT CAPACITY, Course.COURSE_NAME, SEMESTER 
FROM COURSE, Section, Room 
WHERE Section.COURSE_NUM 
IN (SELECT Course.COURSE_NUMBER 
    FROM Course 
    WHERE SEMESTER='FALL' 
) 

我只需要能够显示大于其平均数的列容量结果。

回答

0

我不能说这是哪个表有容量列和你有那里的表之间有什么关系,但我只能说,你需要再次加入3个表中的子查询,以便能够访问容量那里,像这样:

SELECT CAPACITY, Course.COURSE_NAME, SEMESTER 
FROM COURSE, Section, Room 
WHERE Section.COURSE_NUM 
IN (SELECT Course.COURSE_NUMBER 
FROM Course 
WHERE SEMESTER='FALL' AND Section.ROOM 
     IN(
      SELECT Room.ROOM 
      FROM Room 
      INNER JOIN SEMESTER 
       ON COLUMNS 
      INNER JOIN SECTION 
       ON COLUMNS 
      INNER JOIN COURSE 
       ON COLUMNS 
      WHERE AVG(CAPACITY)>CAPACITY 
      ) 
+0

容量在ROOM。学期来自Section,COURSE_NAME来自COURSE。 – user3431138

0

我似乎能够弄明白。

SELECT CAPACITY, Course.COURSE_NAME, SEMESTER 
FROM COURSE, Section, Room 
WHERE Section.COURSE_NUM 
IN (SELECT Course.COURSE_NUMBER 
FROM COURSE 
WHERE SEMESTER='FALL' AND Room.ROOM 
IN (SELECT Section.ROOM 
FROM Section 
WHERE CAPACITY>(SELECT AVG(CAPACITY) FROM Room))) 
ORDER BY CAPACITY