У меня есть две таблицы LeftTable и RightTable с соответствующими данными.
LeftTable
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
Результат основан на каждой записи в правой таблице и также присутствует в левой таблице на основе уровень , т.е. если три записи присутствуют в lefttable , но в righttable тамэто только запись на уровне 2, то он должен вернуть только одну запись или наоборот.LoginId будет больше.