有条件 table 更新 SQL Server 2008
Conditional table update SQL Server 2008
我想更新 table 列,其中值取自相同 table 的不同列,条件是 CompletionDate='1900-01-01 00:00:00.000'
我该怎么做?
update Details
set CompletionDate = (select FixedDate from TblRequirementDetails)
where CompletionDate = '1900-01-01 00:00:00.000'
and StatusID = '10'
GO
产生错误
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
您的子查询 returns 多个结果。您的子查询应该只给出 1 个值结果。请参阅下面的查询
UPDATE Details
SET CompletionDate = (
SELECT
FixedDate
FROM TblRequirementDetails <WHERE CLAUSE HERE THAT ENABLES YOUR QUERY TO RETURN ONLY ONE VALUE>
)
WHERE CompletionDate='1900-01-01 00:00:00.000'
AND StatusID='10
很不清楚你想select如何设置固定日期。根据您的评论,很明显您想将 CompletionDate
设置为 FixedDate
相同 table when StausID=10
for fixedDate 我假设它会给你 uniq 行.
UPDATE Details
SET CompletionDate = FixedDate
WHERE
CompletionDate='1900-01-01 00:00:00.000'
AND StausID= '10'
我包括以确保子查询 returns 只有一行。但这是非常容易出错的方法,您需要确保第一行是您要使用的内容。
更新
正如弗洛姆评论我理解的那样,你只是想更新相同的行 Complettiondate
与那些行 FixedDate
值所以更新了查询。
我想更新 table 列,其中值取自相同 table 的不同列,条件是 CompletionDate='1900-01-01 00:00:00.000'
我该怎么做?
update Details
set CompletionDate = (select FixedDate from TblRequirementDetails)
where CompletionDate = '1900-01-01 00:00:00.000'
and StatusID = '10'
GO
产生错误
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
您的子查询 returns 多个结果。您的子查询应该只给出 1 个值结果。请参阅下面的查询
UPDATE Details
SET CompletionDate = (
SELECT
FixedDate
FROM TblRequirementDetails <WHERE CLAUSE HERE THAT ENABLES YOUR QUERY TO RETURN ONLY ONE VALUE>
)
WHERE CompletionDate='1900-01-01 00:00:00.000'
AND StatusID='10
很不清楚你想select如何设置固定日期。根据您的评论,很明显您想将 CompletionDate
设置为 FixedDate
相同 table when StausID=10
for fixedDate 我假设它会给你 uniq 行.
UPDATE Details
SET CompletionDate = FixedDate
WHERE
CompletionDate='1900-01-01 00:00:00.000'
AND StausID= '10'
我包括以确保子查询 returns 只有一行。但这是非常容易出错的方法,您需要确保第一行是您要使用的内容。
更新
正如弗洛姆评论我理解的那样,你只是想更新相同的行 Complettiondate
与那些行 FixedDate
值所以更新了查询。