我想要我的Microsoft数据库(MS SQL)中的最后一个条目,但得到重复

时间:2016-01-19 09:10:24

标签: c# sql sql-server

我的问题是我想启动一个数据库查询,它应该给我每个序列号的最后一个(maxDate)条目。
(我正在使用Microsoft数据库 - >请使用MS SQL)

第一张图显示了数据库中的所有条目:

enter image description here 运行以下代码后,我得到了这个输出:

$(document).ready(function(){
  //restore the first option of the select dropdown option
    var tt = "";
    var open = false;
    $(document).on("focus","select",function(){
        if(open) {
            open = false;
        }
        $(this).find('option:first-child').prop({ disabled : true }).show();
        tt = $(this).val();
    });
    $(document).on("change","select",function(){
        tt = "";
        $(this).blur();
    });

    $(document).on("blur","select",function(){
        if($(this).val() === tt){
           $(this).find('option:first-child').prop({ selected : true, disabled : true }).closest("select").trigger("change");
        }
        tt = "";
    });
    //When the dropdown closes it blures the select. Catuion this will also trigger 
    //if you open select and select nothing and close it back. In that case the select 
    //will be reset.
     $(document).on("click","select",function(){
        open = !open;       
        if(!open){
             $(this).blur();
        }
     });
});

图片后:

enter image description here

现在我的问题是我有重复,因为它们已经存在于数据库中。 Distinct 效果不佳,因为这些都有不同的ID。

我怎样才能把它们拿走?

1 个答案:

答案 0 :(得分:2)

您可以使用窗口函数:

SELECT *
FROM (SELECT *,
         rn = ROW_NUMBER() OVER(PARTITION BY [SerialNumber] ORDER BY [Date] DESC)
     FROM eBox_Deploy) AS sub
WHERE rn = 1;

如果您的[Date]SerialNumber群组中不是唯一的,请使用RANK()来获取关系。