我遇到了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
答案 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