[英]Update 2 values in one temporary table T-SQL
希望您的查询有所帮助。 我有一个临时表,其中包含value(float),attribute(nvarchar)和system(int)。 我需要根据属性更新值,但要使用系统。 所以...
UPDATE #inventory (value, attribute)
SET (value, attribute) = (SELECT SUM(value), 'Actual'
FROM ReportValue v, ReportValueType t, ReportProducts ti
WHERE v.type_id = t.id
AND v.voyage_id = ti.id
AND t.value_code = 'total'
AND t.category_code = 'cold'
AND ti.end_time BETWEEN @start AND @end)
UPDATE #inventory (value, attribute)
SET (value, attribute) = (SELECT SUM(value), 'Actual'
FROM ReportValue v, ReportType t, Reportprod ti
WHERE v.type_id = t.id
AND v.voyage_id = ti.id
AND t.field_name = 'Total'
AND t.slot_type = 'COLD'
AND t.xml_id = -2000
AND ti.end_time BETWEEN @start AND @end)
else (value, attribute)
end
这是错误的形式。 我该如何运作? 预先感谢您的回答!
好的,这样您就可以尝试着更新语法...(兼容):
UPDATE tblNameCanBeTempTable
SET Column1 = S.Value1, Column2 = S.Value2, etc
FROM (anyValidSelectTableStatement) S
WHERE tblNameCanBeTempTable.KeyValue = S.keyValue
因此,路由是使您选择语句,检查它是否产生所需的值,然后在开始处添加更新,并在末尾匹配WHERE的行
你可以做类似的事情
Col1 = CASE WHEN X=1 THEN S.Value1 ELSE Col1 END
每行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.