#sql-server
#sql-server
Вопрос:
Я новичок в MSSQL, я пытаюсь объединить две таблицы псевдонимов, созданные из запроса SELECT, следующим образом
SELECT COUNT(T1.A1) AS [count],T1.A2 AS [Cname] FROM (
SELECT A1.Column1,A1.Column2
FROM A1
) T1
GROUP By T1.A1
И у меня есть другая таблица, например
SELECT COUNT(T2.A2) AS [count],T2.A2 AS [Cname] FROM (
SELECT A2.Column1,A2.Column2
FROM A2
) T2
GROUP By T2.A2
Я хочу получить такой результат:
| Cname |T1.Count | T2.Count |
|Column1 | 7 | 7 |
|Column2 | 9 | 7 |
Я пробовал с некоторым объединением, но получаю недопустимый объект T1. может ли кто-нибудь подсказать мне, как мне получить таблицу результатов, любая небольшая помощь приветствуется.
Комментарии:
1. Покажите, что вы пробовали с joins и процитируйте ошибку, оба дословно.
2. Ваш первый запрос является недопустимым синтаксисом в качестве отдельного запроса — что-то, что вы пропустили. Это также кажется слишком сложным, но это предположение, поскольку оно недействительно. Производная таблица t1 имеет столбцы с именами Column1 и Column2 — вы не можете ссылаться на столбцы A1 или A2 во внешнем запросе. Вы также не можете включить A2 в результирующий набор, не добавив его в предложение group by или не используя его с агрегатом. Производная таблица представляет собой простой select, поэтому нет причин использовать ее вообще, что является чрезмерно сложным аспектом.
Ответ №1:
Вы пробовали a UNION ALL
? Что-то вроде этого:
SELECT COUNT(a.C2), a.C1
FROM (
SELECT A1.Column1 as C1, A1.Column2 as C2
FROM A1
UNION ALL
SELECT A2.Column1 as C1, A2.Column2 as C2
FROM A2) a
GROUP BY a.C1