需要使用 MS SQL 2008 和存储过程。
因此,在我的表中,我有某些行 IsDouble 值为 2。现在,如果字符串计数(从 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;
编辑
这是示例数据(发票类型、发票编号、发票日期、供应商代码):
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