我看过有关如何将同一表中的列加在一起的教程。但是,我还没有看到如何返回两列相加后的结果列,然后将该结果设置为全新的列。
下面的代码用于返回两列/向量之间的和:
SELECT Cost_0 + Rev_0 FROM myTestDb.dbo.COST, myTestDb.dbo.REVENUE;
因此,我认为我可以在新表的更新块中使用此行代码BREAK_EVEN:
UPDATE myTestDb.dbo.BREAK_EVEN
SET B_E0 = (SELECT Cost_0 + Rev_0 FROM myTestDb.dbo.COST, myTestDb.dbo.REVENUE);
运行此命令时,我受到影响(0行),这使我想到两个问题:
我的代码实际上在做什么,并且
我需要更改什么才能设置B_E0 = Cost_0 + Rev_0?
答案 0 :(得分:0)
尝试使用CTE
WITH qry1 AS
(
SELECT [SomeRecordID] /*need some kind of record to reference when
updating existing values*/
, Cost_0 + Rev_0 AS ResultSum
FROM COST
JOIN REVENUE ON /*YOU NEED TO DEFINE YOUR JOIN COLUMNS OR YOU WILL HAVE A
CARTESIAN JOIN*/
)
UPDATE BREAK_EVEN
SET B_E0 = [ResultSum]
FROM qry1
JOIN BREAK_EVEN ON qry1.SomeRecordID = BREAK_EVEN.MatchingRecordID
;
抱歉,这有点丑陋,但是我不知道源表中的记录ID,也不知道您要更新哪些记录。
由于您要使用UPDATE,所以我假设您正在更新当前记录。如果要创建新记录,请使用INSERT语句。
希望有帮助。