0

我有这样的 SQL 表

  Name         WID
----------  ----------
 name1         1
 name1         2
 name1         3
 name2         1
 name3         1
 name4         1
 name4         2

我怎样才能得到最后一个版本之前的版本

  Name         WID
----------  ----------
 name1         2
 name2         1
 name3         1
 name4         1

使用 SQL 查询

4

1 回答 1

0

我到达查询以获得我需要的结果

SELECT E.Name, E.WID 
FROM
(
    SELECT Name, MAX(WID) AS WID FROM MyTAble WHERE WID IN (2,1)
    GROUP BY Name
) AS ViewVersionIDs
INNER JOIN MyTable AS E ON ViewVersionIDs.Name = E.Name 
AND ViewVersionIDs.WID = E.WID
ORDER BY E.Name

如果我需要唯一的第二个版本,我会创建 WID 条件WID IN (2,1)
如果我需要唯一的第三个版本,我会创建 WID 条件WID IN (3,2,1)

等等 ...

于 2013-05-27T05:17:41.047 回答