更新复杂的SQL查询,以添加两列之和的新列
下面的SQL查询创建了一个表,下一行中有更新复杂的SQL查询,以添加两列之和的新列,sql,sql-server,Sql,Sql Server,下面的SQL查询创建了一个表,下一行中有n个列 …,货币金额,税额,… 我很难更新下面的查询来创建一个名为total和position的新列,它正好位于tax\u amount列之后,total列应该包含在curr\u amount和tax\u amount之和之后获得的值 我已经在这方面工作了一天多了,但一直没有弄明白 顺便说一句,这里还没人。非常感谢你抽出时间。 . 选择Isnull(t.total\u month,'total')total\u month, t、 税额, t、 货币金额
n个列
…
,货币金额
,税额
,…
我很难更新下面的查询来创建一个名为total
和position
的新列,它正好位于tax\u amount
列之后,total
列应该包含在curr\u amount
和tax\u amount
之和之后获得的值
我已经在这方面工作了一天多了,但一直没有弄明白
顺便说一句,这里还没人。非常感谢你抽出时间。
.
选择Isnull(t.total\u month,'total')total\u month,
t、 税额,
t、 货币金额,
t、 使用量,
t、 kh_数量,
t、 账单
从(选择dbo.Sigmadf(bm.posted_date,'YYYY-MM')总计月,
总数(例)
当rr.usage\u qty为空时,则为0
ELSE Cast(rr.usage_数量为数字(18,2))
结束)使用数量,
总数(例)
当bm.curr\u amount为空时,则为0
其他本币金额
结束)当前金额,
总数(例)
当bm.adj_amount为空时,则为0
其他bm.adj_金额
结束)调整金额,
总数(例)
当bm.bal_fwd_amount为空时,则为0
其他bm.bal\U fwd\U金额
(完)bal_forward,,
总数(例)
当bm.tax_金额为空时,则为0
其他bm.税款金额
(完)税额,,
总数(例)
当bm.due_amount为空时,则为0
其他bm.到期金额
结束)到期金额,
总数(例)
当bm.last\u total\u paid\u amount为空时,则为0
其他bm.上一次支付总额*1
结束)已付金额,
总数(例)
当bm.bill\u print='Y'时,则为1
其他0
完)pdf,
总数(例)
当Isnull(bm.bill\u处理\u代码'0')='0'时,则为1
其他0
完)注册,,
总数(例)
当Isnull(bm.bill\u处理\u代码'0')='1'时,则为1
其他0
完)ftime_cnt,
总数(例)
当Isnull(bm.bill_处理代码'0')='9999'时,则为1
其他0
结束)时间,
计数(*)账单,
总数(例)
当账单状态为'01'时,则为1
其他0
完)坎昆,
总数(例)
当账单状态为'01'时,则
案例
当rr.usage\u qty为空时,则为0
ELSE Cast(rr.usage_数量为数字(18,2))
结束
其他0
完)坎昆(美国),
总数(例)
当vis.kh_数量为空时,则为0
其他铸件(相对于kh_数量为数字(18,2))
完)kh_数量
来自bill_master bm和(nolock)
内部连接(选择票据编号,
总数(例)
当vpb.recurr\u charge\u输入('T4'时,
"SLF")
然后
案例
当vpb.print_数量='Y'
并且vpb.usage\u数量不为空
然后
铸造(vpb.用途_数量为
数字(18,2))
其他0
结束
其他0
结束)使用数量
从v\u打印\u账单\u所有vpb
按工程量清单(编号)rr分组
在rr.bill\u no=bm.bill\u no上
左外连接与(nolock)的主连接
关于bm.bill\u no=vis.bill\u no
其中1=1
和dbo.Trunc(bm.posted_date)>='20150101'
和dbo.Trunc(bm.posted_date)我必须说,解释不是很清楚。
据我所知,您需要总共两列
因此,将所有查询包装在括号中,称之为子查询,并将顶部的两列相加:
SELECT subQuery.total_month as bill_date,
subQuery.curr_amount as amount,
subQuery.tax_amount tax,
subQuery.curr_amount + subQuery.tax_amount as [total],
...
FROM
(..your entire query here..) as subQuery
你能举一个小的例子吗?当你不得不四处滚动时,你和我们都很难理解一个问题。但这是我正在处理的问题,我的friendSide便笺有困难-但非常重要。这似乎是一个金融应用程序。请帮你自己一个忙,停止使用NOLOCK。肮脏的阅读应该对于这种类型的应用程序,这是避免这种情况的充分理由,但它会给表带来太多其他数据不一致。它有时会返回丢失的和/或重复的行,这实际上是错误的
SELECT subQuery.total_month as bill_date,
subQuery.curr_amount as amount,
subQuery.tax_amount tax,
subQuery.curr_amount + subQuery.tax_amount as [total],
...
FROM
(..your entire query here..) as subQuery