Как получить порядок 25 лучших записей, созданных по SQL-запросу? - PullRequest
0 голосов
/ 24 февраля 2011

У меня есть две таблицы, такие как updatetext и users. Я хочу, чтобы верхние позиции отличались от updatetext. Таблица. Пользователь, имеющий уникальные записи, основанные на информации пользователя, и updatetext, имеющий несколько записей updatetext ... Я хочу получить последнее последнее обновление из таблицы updatetext. Как я могу получить?

Users Table
1) userid
2) username
3) password
4) createdon

UpdateText Table
1) updatetextID
2) userid
3) updateScrap
4) createdon
3) location

UpdateText

updatetextID    userid  updateScrap     Createdon
     11      535     yes good test      2/23/2011 9:59
     12      540    udpate sample       2/23/2011 9:58
     13       44    Absas               2/22/2011 12:30
     14       20    test text 123       2/22/2011 12:24
     15      540    hi how are you?     2/22/2011 12:00
     16      535    Hi r u there?       2/22/2011 12:30
     17      540    welcome back        2/22/2011 10:23

Пользователь

userid  username    password    
535 abhi        
540 shankar     
44  dhaval      
20  john        

Я хочу получить лучшие созданные записи из таблицы UpdateText и получить имя пользователя и пароль из таблицы пользователей .. Пожалуйста, помогите мне.

Ответы [ 3 ]

1 голос
/ 24 февраля 2011

Это топ-25, последнее обновление на пользователя.Я предполагаю, что это то, что вы действительно имеете в виду

;WITH CTE AS
(
  SELECT
     *,
     ROW_NUMBER() OVER (PARTITION BY userid ORDER BY createdon) AS RankNum
  FROM
     [UpdateText]
)
SELECT TOP 25
   *
FROM
   CTE 
   JOIN
   Users U ON CTE.userid  = U.userid 
WHERE
   RankNum = 1
ORDER BY
   CTE.createdon
1 голос
/ 24 февраля 2011
SELECT  TOP 25 
        ut.*
        ,u.username
        ,u.password
FROM    [UpdateText] ut
JOIN    Users u ON  ut.userid = u.userid
JOIN    (   SELECT  MAX(ut2.createdon) as maxcreatedon
                    ,ut2.userid
            FROM    [UpdateText] ut2
            GROUP BY ut2.userid
        ) x ON x.maxcreatedon = ut.createdon
            AND x.userid = ut.userid
ORDER BY ut.createdon DESC

Может быть, вы ищете что-то подобное?

0 голосов
/ 24 февраля 2011

Не уверен, что я полностью понимаю, но попробуйте что-то вроде:

SELECT * FROM UpdateText 
   INNER JOIN Users ON UpdateText.userid = Users.userid
ORDER BY UpdateText.createdon DESC LIMIT 25
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...