Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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_Tsql - Fatal编程技术网

最新记录和总和SQL

最新记录和总和SQL,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在寻找解决这个问题的办法 表: 我希望此输出显示基于最大事务id的最新层 你可以做: select *, sum(select sum(t1.poin) from table t1 where t1.member_id = t.member_id ) as poin, sum(select sum(t1.freq) from table t1

我正在寻找解决这个问题的办法

表:

我希望此输出显示基于最大事务id的最新层

你可以做:

select *, sum(select sum(t1.poin)
              from table t1
              where t1.member_id = t.member_id
             ) as poin,
          sum(select sum(t1.freq)
              from table t1
              where t1.member_id = t.member_id
             ) as freq
from table t
where trans_id = (select t1.trans_id
                  from table t1
                  where t1.member_id = t.member_id
                  order by t1.trans_id desc
                  fetch first 1 rows only
                 );
大多数DBMS都支持只获取前1行的方法

如果您正在使用SQL Server,则可以直接将其表示为:

select t.member_id, tt.*
from (select *, row_number() over (partition by member_id order by trans_id desc) as seq
      from table
     ) t cross apply (
            select sum(t1.poin) as poin, sum(t1.freq) as freq
            from table t1
            where t1.member_id = t.member_id
     ) tt
where t.seq = 1; 

这里的大多数人都需要格式化的文本,而不是图像或链接到图像。大多数人都认为标题中的所有标题都是高喊的。你如何选择哪一层来选择TurnID?标记DBMS,即MySQL、SQL Server等。您正在使用的。非常感谢您的帮助,先生。它工作得很好。次要更正,第一行,类型:选择t.member_id,t.tier,tt.*以获取层信息。非常感谢