【发布时间】:2014-08-05 12:35:11
【问题描述】:
我有一张发票表,其中偶尔的失误导致为某些记录创建了两张发票。这意味着我有大约 2000 条由两行组成的发票记录。我需要合并这些重复的记录
每一行都有以下信息:
- 一个关键字段:
LINK - 总计,减去增值税字段:
ExVAT - 增值税字段:
VAT - 类型字段:
TYPE
我已经起草了一些伪代码,但我不太擅长 VB,所以它是在 C# 中的:
foreach Row record in TableName
{
if (record1.TYPE == "priorfee", record2.TYPE == "priorfee")
{
Row newRecord = new Row;
newRecord.LINK = record1.LINK;
newRecord.TYPE = record1.TYPE;
newRecord.VAT = (record1.VAT + record2.VAT);
newRecord.ExVAT = (record1.ExVAT + record2.ExVAT);
record1 = Null;
record2 = Null;
}
else if (record1.TYPE == "subsequentfee", record2.TYPE == "subsequentfee")
{
Row newRecord = new Row;
newRecord.LINK = record1.LINK;
newRecord.TYPE = record1.TYPE;
newRecord.VAT = (record1.VAT + record2.VAT);
newRecord.ExVAT = (record1.ExVAT + record2.ExVAT);
record1 = Null;
record2 = Null;
}
}
现在,我需要把它放到一个工作的 VB 脚本中,或者想办法把它作为一个 SQL 脚本来做(我不介意分两轮来做,每种类型一个)。
另外,哪个更可取?
【问题讨论】:
-
@zaitsman 我假设我只是使用 SQL 语句来查找多个记录,例如重复记录向导创建的记录。这就是我需要
TYPE定义的原因,因为有些记录同时具有priorfee和subsequentfee条目。在这种情况下,我确实不想要合并它们。我只想在存在多个相同type的记录时合并。 -
@zaitsman 问题是,所有这些重复项都有相同的
LINK引用。重复的数量各不相同,并非所有记录都有重复。总共有 1,016 条记录具有一种类型和/或另一种类型的重复项,其中一些记录具有多个重复项。我可以将记录分成两个表(priorfee和subsfee),这样会简化流程吗?要回答您的问题,如果有 20 条priorfee类型的记录,则具有相同LINK引用的那些记录是重复的。 -
@zaitsman 还有,我指的是 MS-Access 中的一个向导,它创建一个 SQL 查询以根据一个或多个不同的列在特定表中定位重复项。
-
@zaitsman 在这种情况下,是的。理想情况下,我会更新它们,但这也意味着删除未更新的行,我认为在这种情况下这会使事情变得过于复杂。
-
@Shell 嗯...不是真的。我正在处理机密数据,有太多可识别信息。我很困惑你为什么需要它?
标签: c# sql vb.net ms-access ms-access-2010