SQL Group不在Join中工作

时间:2017-07-27 18:01:09

标签: sql

我遇到了GROUP BY功能的问题。我尝试将DISTINCT函数用于我的目的,但我的所有搜索都让我尝试使用GROUP BY函数。

我有3张桌子。 Tbl1和Tbl2具有相同的列。 Tbl 3有不同的列,但我实际上是尝试将所有3个表连接在一起,这个查询正确。

但是,我希望结果集排除其中一列Tbl3.A

中的重复项

我收到错误:列'DB1.dbo.Tbl2.C'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。

这是完整的查询:

SELECT Tbl3.A, Tbl1.C, Tbl1.B
FROM DB1.dbo.Tbl1
LEFT JOIN
DB2.dbo.Tbl3 ON Tbl1.B = Tbl3.A
WHERE ….

UNION

SELECT Tbl3.A, Tbl2.C, Tbl2.B
FROM DB1.dbo.Tbl2 
LEFT JOIN 
DB2.dbo.Tbl3 ON Tbl2.B = Tbl3.A

WHERE …..

GROUP BY Tbl3.A

2 个答案:

答案 0 :(得分:0)

使用子查询。像这样:

#include <windows.h>
#include <mmsystem.h>
#pragma comment( lib, "Winmm.lib" )
using namespace std;

int main()
{
//Replace C:\\Users\\iD Student\\Downloads\\HarryPotter.wav with the location of your file
PlaySound(L"C:\\Users\\iD Student\\Downloads\\HarryPotter.wav", 0, SND_FILENAME);

}

答案 1 :(得分:0)

SELECT NewTbl3.A, Tbl1.C, Tbl1.B
FROM DB1.dbo.Tbl1
LEFT JOIN
(SELECT DISTINCT Tbl3.A) AS NewTbl3
ON Tbl1.B = NewTbl3.A
WHERE ….

UNION

SELECT NewTbl3.A, Tbl2.C, Tbl2.B
FROM DB1.dbo.Tbl2 
LEFT JOIN
(SELECT DISTINCT Tbl3.A) AS NewTbl3
ON Tbl2.B = NewTbl3.A

WHERE …..

GROUP BY NewTbl3.A