Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 按记录分组,然后从每个组中获取最后一个升序排序的记录?_Sql_Sql Server_Sql Server 2008_Tsql_Sql Server 2005 - Fatal编程技术网

Sql 按记录分组,然后从每个组中获取最后一个升序排序的记录?

Sql 按记录分组,然后从每个组中获取最后一个升序排序的记录?,sql,sql-server,sql-server-2008,tsql,sql-server-2005,Sql,Sql Server,Sql Server 2008,Tsql,Sql Server 2005,我有一张桌子: | P_id | Month | Year | Name | 624 09 2009 Test1 600 10 2010 Test2 624 10 2010 Test6 600 09 2011 Test7 我想按p\u id降序、Year升序、然后Month升序对表进行排序 根据顺序,我想要每个p\u id的最后一条记录 运行步骤1后: | P_id | Mo

我有一张桌子:

| P_id | Month |  Year  |  Name  |
   624     09     2009    Test1
   600     10     2010    Test2
   624     10     2010    Test6
   600     09     2011    Test7
  • 我想按
    p\u id
    降序、
    Year
    升序、然后
    Month
    升序对表进行排序

  • 根据顺序,我想要每个
    p\u id
    的最后一条记录

  • 运行步骤1后:

    | P_id | Month |  Year  |  Name  |
      624     09      2009    Test1
      624     10      2010    Test6
      600     10      2010    Test2
      600     09      2011    Test7
    
    期望输出:

    | P_id | Month |  Year  |  Name  |
       624     10     2010    Test6
       600     09     2011    Test7
    

    您可以使用
    行编号

    select  *
    from    (
            select  row_number() over (
                      partition by p_id
                      order by year desc, month desc) as rn
            ,       *
            from    YourTable
            ) as SubQueryAlias
    where   rn = 1
    

    子查询是必需的,因为您不能在
    where
    子句中直接使用
    row_number

    我不能在类型化数据集中使用row_number()函数。对于类型化数据集,您的意思是什么?在VisualStudio中,添加新项-->VC#-->数据-->dataset:)您可以使用
    SqlCommand.ExecuteReader
    和运行查询。我怀疑您还可以编辑数据集底层的XML,使其能够处理任何查询。或者更好的是,换成