Выберите top * из 2-х таблиц порядка по некоторому полю - PullRequest
0 голосов
/ 30 мая 2019

У меня есть 2 таблицы, как это

[информация]

enter image description here

[Score]

enter image description here

Я хочу select top3 * orderby score в мае DESC результат должен выглядеть следующим образом.

enter image description here

Ответы [ 3 ]

0 голосов
/ 30 мая 2019

Вот, пожалуйста, Вы можете использовать оператор объединения.

SELECT TOP(3) a.user_id, a.Name, a.Age, b.Score FROM Users a JOIN Score b On a.user_id=b.user_id Order By b.Score desc
0 голосов
/ 30 мая 2019

Следующее будет полезно.

SELECT TOP 3 S.User_Id, SUM(S.Score) Score, U.Name, U.Age
FROM Info U
INNER JOIN Score S ON U.User_Id = S.User_Id
WHERE MONTH(S.Date) = 5 --Only May Month.
GROUP BY S.User_Id, U.Name, U.Age
ORDER BY 2 DESC
0 голосов
/ 30 мая 2019

Попробуйте присоединиться к обеим таблицам в производной таблице с суммой на счете и порядком для этого

SELECT TOP 3 *
FROM(
SELECT
    I.User_Id, I.[Name], I.Age, Score = SUM(S.Score)
FROM
    Info I
INNER JOIN
    Score S On S.User_Id = I.User_Id
WHERE MONTH(S.[DATE]) = 5 --May (however I suspect this might not be a DATE object)
GROUP BY
    I.User_Id, I.[Name], I.Age
) X
ORDER BY X.Score DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...