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

如何在sql中查找同一列的行之间的差异

如何在sql中查找同一列的行之间的差异,sql,sql-server-2008,Sql,Sql Server 2008,问题->写一个查询,显示取款超过存款金额的所有账号、存款、取款 试试这个您也可以通过自连接来完成: ;WITH D AS ( SELECT ACNUMBER, SUM(TRANSACTION) AS Deposit FROM TABLE_NAME WHERE TRANSACTION_TYPE = 'Deposit' GROUP BY ACNUMBER ) , W as ( SELECT ACNUMBER, SUM(TRANSACTION) AS Withdrawal FROM TABLE_NA

问题->写一个查询,显示取款超过存款金额的所有账号、存款、取款

试试这个您也可以通过自连接来完成:

;WITH D AS
(
SELECT ACNUMBER, SUM(TRANSACTION) AS Deposit
FROM TABLE_NAME 
WHERE TRANSACTION_TYPE = 'Deposit'
GROUP BY ACNUMBER
)
, W as
(
SELECT ACNUMBER, SUM(TRANSACTION) AS Withdrawal
FROM TABLE_NAME 
WHERE TRANSACTION_TYPE = 'Withdrawal'
GROUP BY ACNUMBER

)
SELECT D.ACNUMBER, d.Deposit, w.Withdrawal

FROM D 
INNER JOIN W
ON D.ACNUMBER = W.ACNUMBER
WHERE d.Deposit < w.Withdrawal

您不应按交易类型分组。试试这个

select acnumber,sum(transaction_amount * case when transaction_type = 'deposit' then 1 else -1 end) as amount 
from trandetails 
group by acnumber
order by acnumber asc 
您可能只对金额为负数的行感兴趣,因为这些是取款>存款的帐户。在这种情况下,请添加一个过滤器:

select acnumber,sum(transaction_amount * case when transaction_type = 'deposit' then 1 else -1 end) as amount 
from trandetails 
group by acnumber
having sum(transaction_amount * case when transaction_type = 'deposit' then 1 else -1 end) < 0
order by acnumber asc 

到目前为止您尝试了什么???选择acnumber、transaction_type、sumtransaction_amount作为trandetails组中的金额(按acnumber)、transaction_type订单(按acnumber)asc无法获取特定交易的不同赌注取款和存款acnumber@user5501922把这个问题作为你问题的一部分!这不会返回只有一种交易类型的任何帐户。Msg 8120,级别16,状态1,第3行列“trandetails.acnumber”在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。在ruunin您的查询@Mangal PardeshiSorry时出现此错误。您需要在两个CTE中按ACNUMBER分组