Объедините результаты, «сгенерированные» из двух операторов SELECT с разными схемами, в одну таблицу - PullRequest
7 голосов
/ 12 ноября 2011

Итак, у меня есть следующие операторы SELECT:

SELECT COUNT(A.Award) AS US, SUBSTRING(CAST(M.Year as char(4)), 0 , 4)  AS Decade
FROM Movies M, Awards A
WHERE {SOME WHERE CLAUSE}
GROUP BY Decade;

и

SELECT COUNT(*) AS Total, SUBSTRING(CAST(A2.Year as char(4)), 0 , 4) AS Decade
FROM Awards A2
WHERE {SOME WHERE CLAUSE}
GROUP BY Decade;

Первый - это «создание» таблицы со столбцами ( US , Десятилетие ), а вторая «генерирует» другую таблицу со столбцами ( Всего , Десятилетие ).Я хочу объединить эти две таблицы, чтобы получить таблицу ( US , Total , Decade ).Как я могу это сделать?

1 Ответ

21 голосов
/ 12 ноября 2011

Поместите их в подзапросы и выполните JOIN:

SELECT a.US, a.decade, b.total FROM

  (SELECT COUNT(A.Award) AS US, SUBSTRING(CAST(M.Year as char(4)), 0 , 4)  AS Decade
  FROM Movies M, Awards A
  WHERE {SOME WHERE CLAUSE}
  GROUP BY Decade ) AS a

INNER JOIN

  (SELECT COUNT(*) AS Total, SUBSTRING(CAST(A2.Year as char(4)), 0 , 4) AS Decade
  FROM Awards A2
  WHERE {SOME WHERE CLAUSE}
  GROUP BY Decade) AS b

ON a.decade = b.decade
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...