首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用列选择查询更新sql中的变量值

如何使用列选择查询更新sql中的变量值
EN

Stack Overflow用户
提问于 2014-01-28 16:53:29
回答 3查看 1.7K关注 0票数 0

我想用列选择来更新用户变量。我得到了这样的错误

代码语言:javascript
复制
SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations

我需要这样的报告:这里贷方和借方表列。余额是用户列

表值

预期结果

我试过像这样的代码

代码语言:javascript
复制
Declare @Openingbalance decimal(18,8) set @Openingbalance=100 select  CreditAmount, DebitAmount, (@Openingbalance + CreditAmount-DebitAmount) as 'Balance' from ACT_Transaction

这个结果显示错误。因为在select语句中未更新期初余额

EN

回答 3

Stack Overflow用户

发布于 2014-01-28 16:57:47

这应该适用于SQL 2008及更高版本

代码语言:javascript
复制
Declare @Openingbalance decimal(18,8) = 100
select CreditAmount, 
       DebitAmount, 
       (@Openingbalance + CreditAmount-DebitAmount) as 'Balance' 
from ACT_Transaction
票数 2
EN

Stack Overflow用户

发布于 2014-01-28 17:01:30

代码语言:javascript
复制
Declare @Openingbalance decimal(18,8) 
set @Openingbalance=100 
select  @Openingbalance as 'Openingbalance', CreditAmount
DebitAmount, (@Openingbalance + CreditAmount-DebitAmount) as 'Balance' from ACT_Transaction
票数 0
EN

Stack Overflow用户

发布于 2014-01-28 17:15:39

从技术上讲,您的查询是正确的,但是您没有提到要将期初余额显示为单独的列还是在余额列中显示?

您可以使用子查询来执行以下操作

Declare @optBal Numeric(10)集合@optBal=100

select fldDate,fldTrxType,fldAmount,(select sum(convert(money,case when cramt -1 else 1 end) * cramt + @optBal) from tblTrx where fldDate <= trx.fldDate)作为tblTrx trx by fldDate的余额

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21400862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档