更新列问题tsql

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更新列问题tsql相关的知识,希望对你有一定的参考价值。

Take a look at this

任务是在'mbr'和'GRP_ID'之间的TABLE_A和TABLE_B之间的关系之后,对'ugupna bilansna i vanbilansna aktiva'求同一'ID_Grupe'。

(mbr和GRP_ID是客户ID卡号)

之后,我们需要在加入相同的“ID_IDENTN_NUM”后更新“IDV_REL_P_ESR_AMT”列中TABLE_C中的求和值。

因此,您可以将ID_IDENTN_NUM,mbr和GRP_ID视为相同的ID卡号。

如何在三个表之间进行连接,以及UPDATE和SET语句?

这是我的想法:

UPDATE B2_INPT_CR_IP_SNPST AS c
SET IDV_REL_P_ESR_AMT = (SELECT ID_Grupe, SUM(ukupna_bilansna_i_vanbilansna_aktiva)
                         FROM rm_tb_portfolio AS a
                         INNER JOIN B2_INPT_CR_GRP_SNPST AS b ON a.mbr = b.GRP_ID
                         GROUP BY ID_Grupe)
 WHERE c.IP_IDENTN_NUM = a.mbr
答案

试试这个:

WITH CTE
AS
(
    SELECT ID_Grupe,
           sum(ukupna_bilansna_i_vanbilansna_aktiva) AS Total
    FROM rm_tb_portfolio as a
    INNER JOIN B2_INPT_CR_GRP_SNPST as b ON a.mbr = b.GRP_ID
    GROUP BY ID_Grupe
)
UPDATE c
SET c.IDV_REL_P_ESR_AMT  = c2.Total
FROM B2_INPT_CR_IP_SNPST as c1
INNER JOIN CTE AS c2 ON c1.ID_Grupe = c2.ID_Grupe;

如果要插入,可以采用相同的方式:

WITH CTE
AS
(
    ....
)
INSERT INTO B2_INPT_CR_IP_SNPST(...)
SELECT ... FROM CTE;

但是,你不能在同一个sql语句中同时使用INSERTUPDATE。但是,在这种情况下,您可以使用MERGE来更新现有行或插入新值。

以上是关于更新列问题tsql的主要内容,如果未能解决你的问题,请参考以下文章

js常用代码片段(更新中)

滑动时 ViewPager 更新片段

更新:C++ 指针片段

css常用代码片段 (更新中)

回归 | js实用代码片段的封装与总结(持续更新中...)

GMSMarker 信息窗口内容(片段)未更新