【发布时间】:2016-02-09 18:45:02
【问题描述】:
我正在尝试将这两个子查询(我认为这就是所谓的)内部连接在一起,其中第一个查询的 branchName 等于第二个查询的 branchName。
但是,他们似乎不想联合起来,而且由于我对 SQL 的了解有限,我似乎无法找到解决此问题的方法。我尝试在各种位置移动括号,但它也不喜欢那样。
SELECT *
FROM
(
SELECT B.branchName, A.type, AVG (T.amount), COUNT(A.accNumber)
FROM Branch B, Account A, Transactions T
WHERE
B.branchNumber = A.branchNumber AND
A.accNumber = T.accNumber
GROUP BY B.branchName, A.type
)
INNER JOIN
(
SELECT B1.branchName, COUNT(A1.accNumber)
FROM Account A1, Branch B1
WHERE
A1.branchNumber = B1.branchNumber
GROUP BY B1.branchName
HAVING COUNT(A1.accNumber) > 5
)
ON
B.branchName = B1.branchName
【问题讨论】:
-
两个子查询应该有相同的列数和相同的数据类型
-
@pablomatico - 为什么会这样?
-
@pablomatico 对于
union的两个部分都是正确的,但对于join则不然 -
@Andomar,阿米特。完全正确。我误读了这个问题。很抱歉!
标签: sql tsql subquery inner-join