2016-10-20 13 views
0

こんにちは、私はUpdate Columntableで、別のtatic date valuesにしようとしています。 は、私は以下の更新トップでは動作していません

UPDATE f 
SET f.CLOSEDATE = '2016-10-23' 
FROM office f 
inner join 
(
select OFFICEID from paroffice 
where active = 1 
and RowStatus ='A' 
AND DistrictID = 50000 
)ofc 
on (f.OfficeID = ofc.OfficeID) 
where CloseDate IS NOT NULL 

ようupdateステートメントを実行しようしかし、私はサブクエリが1つの以上の値を返し

を取得しています。 =、!=、<、< =、>、> =、またはサブクエリが式として使用されている場合は、これは許可されません。

エラー。私はグーグルで、この構文がupdatingrowsの特定の数字に対して正しいことを発見しました。私はここで何が欠けているのですか?

+0

このエラーはこのクエリには当てはまりません。クエリにスカラーサブクエリはありません。 –

+0

しかし、私は同じエラーを取得しています – bmsqldev

+2

あなたのテーブルにトリガがありますか? – Lamak

答えて

-1

は、サブクエリなしでそれを書いてみ(と、不要な括弧)ありがとう

UPDATE f 
SET f.CLOSEDATE = '2016-10-23' 
FROM office f 
inner join paroffice ofc 
    on f.OfficeID = ofc.OfficeID 
where f.CloseDate IS NOT NULL 
and ofc.active = 1 
and ofc.RowStatus ='A' 
AND ofc.DistrictID = 50000 
-1

あなたはあなたのクエリは問題ないはずこのよう

UPDATE f 
SET f.CLOSEDATE = '2016-10-23' 
FROM office f 
where exists 
(
select 1 from paroffice 
inner join f.OfficeId = officeid 
where active = 1 
and RowStatus ='A' 
AND DistrictID = 50000 
) 
and CloseDate IS NOT NULL 
-1

を試すことができます。しかし、サブクエリはまったく必要ありません。

update f 
    set f.CLOSEDATE = '2016-10-23' 
    from office f inner join 
     paroffice p 
     on p.OfficeId = p.OfficeId 
    where p.active = 1 and p.RowStatus ='A' and p.DistrictID = 50000 and 
      f.CloseDate IS NOT NULL; 
関連する問題