获取最新更新的不同记录 - sql

时间:2015-05-13 10:46:19

标签: sql-server sql-server-2012

我有一个表FilesList,其中rowid是标识列。

RowId FileId FileName  ColMatch
  1     1    file1.csv  0
  2     1    file2.csv  0
  3     1    file1.csv  1
  4     1    file2.csv  1 

对于特定的fileId(本例中为1),我希望只有最后更新的不同文件名记录

在应用程序(C#)的初始运行之后,使用RowId 1& 2插入表中。第二次运行后,RowId 3&插入4个。

现在报道,我只想看到3& 4。

例如:

RowId FileId FileName  ColMatch
  3     1    file1.csv  1
  4     1    file2.csv  1

没关系,如果结果集没有rowid& FILEID。

应如何做到这一点。

修改 假设一个FileID(在这种情况下为1)有3个相关文件(file1,file2,file3)。在那种情况下我可以做到,

select top 3 from FilesList order by rowid desc

但问题是,我不知道,不同的文件名如何与特定的FileId相关联。

3 个答案:

答案 0 :(得分:2)

如果 -(void) disconnect { if (_selectedPeripheral != nil && _selectedPeripheral.state != CBPeripheralStateDisconnected) { NSLog(@"Peripheral disconnecting"); [_centralManager cancelPeripheralConnection:_selectedPeripheral]; _selectedPeripheral = nil; } } 定义了最新记录,则可以RowId使用ROW_NUMBER降序Partition By FileName。这样的事情。

<强>查询

RowID

示例小提琴

答案 1 :(得分:0)

根据我的理解,您的问题将通过获取特定FileName的最大RowI来解决。(假设应用程序按顺序插入行。)

这将解决目的:

select * from FilesList where RowId in(select MAX(RowId) from FilesList group by (FileName))

您可以为FileId应用过滤器以获得结果(在本例中为1):

select * from FilesList where RowId in(select MAX(RowId) from FilesList where FileId = '1' group by (FileName) )

答案 2 :(得分:0)

issue_entry(issue_entry_customer_id, issue_entry_deleted_status)