MS SQL 2008 を使用しており、ストアド プロシージャが必要です。
したがって、私のテーブルには、IsDouble 値が 2 になる特定の行があります。文字列の数 (4 列から連結) が 1 より大きい場合、最初の選択から行ごとに IsDouble を 2 から 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 で、3 番目の行は 0 である必要があります