需要使用MS SQL 2008和存儲過程。基於子選擇結果的T-sql更新值
所以在我的表中,我有一些行的IsDouble值將是2. 現在我需要更新IsDouble從2到1,從第一個選擇的每一行如果字符串的計數(從4列連接)更大大於1,且如果字符串的數量是1比0
到目前爲止,我有這一點,但它是最有可能不正確:
select * from TestInvoiceData where Isdouble='2';
update TestInvoiceData
set testinvoicedata.Isdouble=
case
when
(
select COUNT (InvoiceDate+InvoiceNumber+VendorCode+Invoicetype)
from TestInvoiceData
) >1 then 1
else 0
end;
編輯
這裏的樣本數據(invoicetype,invoicenumber,invoicedate ,vendorcode):
INVO 322760-262 2012-05-10 0000081964 2
INVO 322760-262 2012-05-10 0000081964 0
INVO 322756-262 2012-05-10 0000081964 2
INVO 7011200072 2012-05-10 0000046172 0
INVO 7011200071 2012-05-10 0000046172 0
INVO 7011200070 2012-05-10 0000046172 0
INVO 7011200069 2012-05-10 0000046172 0
INVO 7011200068 2012-05-10 0000046172 0
INVO 12106563 2012-04-24 0000010171 0
INVO 06649 2012-04-24 0000067987 0
,並在此基礎上例中第一行應該更新1後,第三個0
你需要給樣本數據......這樣的查詢 – Justin
你命名字段'Isdouble'這不是一個'布爾/ bit'? –
它不是布爾/位,它的nchar,我將添加樣本數據 – user1371966