Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.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 server 获取其中最新的行和列的和_Sql Server - Fatal编程技术网

Sql server 获取其中最新的行和列的和

Sql server 获取其中最新的行和列的和,sql-server,Sql Server,在我的表中,我有三列金额,日期,成员ID。现在,我想得到表中插入的最新金额和到目前为止插入的全部金额的总和 我的问题是这样的 SELECT amount , SUM(amount) as TotalAmount FROM [Transactions] WHERE memberid = 1629 Order By Date DESC 但这会抛出这样的错误 SELECT amount , SUM(amount) as TotalAmount FROM [Transactions] WHER

在我的表中,我有三列
金额
日期
成员ID
。现在,我想得到表中插入的最新金额和到目前为止插入的全部金额的总和

我的问题是这样的

SELECT  amount , SUM(amount) as TotalAmount FROM [Transactions] 
WHERE memberid = 1629 Order By Date DESC
但这会抛出这样的错误

SELECT  amount , SUM(amount) as TotalAmount FROM [Transactions] 
WHERE memberid = 1629 Order By Date DESC
Msg 8120,16级,状态1,第1行 列“Transactions.amount”在选择列表中无效,因为它未包含在聚合函数或GROUP BY子句中

有人能指出我做错了什么吗

SELECT amount AS LatestAmount,
       (SELECT SUM(amount) FROM [Transactions]) AS TotalAmount
FROM [Transactions]
WHERE date = (SELECT MAX(date) FROM [Transactions])
请注意,如果出现多个最新金额的平局,上述查询将为每个平局交易生成一条记录。如果您只需要一个结果,并且使用的是SQL Server 2008或更高版本,则可以使用
TOP(1)
将结果限制为一个:

SELECT TOP(1) amount AS LatestAmount,
       (SELECT SUM(amount) FROM [Transactions]) AS TotalAmount
FROM [Transactions]
WHERE date = (SELECT MAX(date) FROM [Transactions])

只需添加
分组依据
子句

SELECT  amount , SUM(amount) as TotalAmount FROM [Transactions] 
GROUP BY amount WHERE memberid = 1629 Order By Date DESC

我建议将
TOP 1
ORDER BY DATE DESC
一起使用,而不是
DATE=(从[Transactions]中选择MAX(DATE))