我有两个表 LeftTable 和 RightTable ,分别包含数据。
左表
loginid position level
-------------------------------------------------- ---------- -----------
9972 L 1
9973 L 1
9974 L 2
9975 L 2
9976 L 2
RightTable
loginid position level
-------------------------------------------------- ---------- -----------
9977 R 1
9978 R 1
9979 R 2
我尝试了以下查询
SELECT
CASE
WHEN LT.loginid > RT.loginid THEN LT.loginid
ELSE RT.loginid
END LoginID,
LT.level
FROM #LeftTable LT
INNER JOIN #RightTable RT ON LT.level = RT.level
得到结果
LoginID level
-------------------------------------------------- -----------
9977 1
9977 1
9978 1
9978 1
9979 2
9979 2
9979 2
但是我想要这样的结果。
loginid level
---------------------------- -----------
9977 1
9978 1
9979 2
注意-这里的Loginid是MAX,而不是来自RightTable
基于右表中的每个记录的结果也基于 level 出现在左表中,即如果 lefttable 中存在三个记录,但在 righttable中存在三个记录,只有第2级的记录,然后它应该仅返回一条记录,反之亦然。 LoginId将更大。