300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql vba日期空值_使用SQL(VBA/ADO)命令填充来自重复记录的相应非空值的NULL字段...

mysql vba日期空值_使用SQL(VBA/ADO)命令填充来自重复记录的相应非空值的NULL字段...

时间:2019-06-30 08:17:08

相关推荐

mysql vba日期空值_使用SQL(VBA/ADO)命令填充来自重复记录的相应非空值的NULL字段...

我有一个数据库,其中有数百个记录已被复制。但是,重复的信息在所有字段中都不相同。对于任何两行,第一行将包含一些字段中的信息,而重复行的字段为空;但对于其他字段,重复(第二)行将包含信息,而第一行的字段为空。例如,它看起来像这样:使用SQL(VBA/ADO)命令填充来自重复记录的相应非空值的NULL字段

ID Deleted Reference Name Case_Date Outcome Outcome_Date

100 False A123 Chris 2000-01-01 Yes

101 False A123 Chris 2000-03-31

ID列是记录的唯一主键。 参考栏是我可以识别重复项的那一栏。 但是,正如您所看到的,第一个记录(100)包含Case_Date和Outcome中的信息,但第二个记录(101)包含Outcome_Date。

我想要做的是将大量信息复制到每对记录中的一个中,然后将复制标记为已删除(我使用软删除,而不是实际从表格中删除记录,但只是将Duplicate列标记为True)。与上面的例子中,我希望它看起来像这样:

ID Deleted Reference Name Case_Date Outcome Outcome_Date

100 False A123 Chris 2000-01-01 Yes 2000-03-31

101 True A123 Chris (2000-01-01)* (Yes)* 2000-03-31

技术上讲,它不会是必要的也是信息复制到记录的空白字段删除其将被标记,但我想它是更容易复制一切,然后将“第二”记录标记为重复记录,而不是试图找出哪一个包含更多信息,哪个包含更少信息。

我也知道,为每列运行单独的SQL命令要比尝试一次全部执行它们更容易。上面显示的列是一个简化示例,每列中可能存在或不存在的信息不同。

我的设置重复的记录SELECT查询语句是:

SELECT *

FROM [Cohorts]

WHERE [Deleted] = False

AND ([CaseType] = "Female" OR [CaseType] = "Family")

AND [Reference] Is Not Null

And [Reference] In (SELECT [Reference] FROM [Cohorts] As Tmp

WHERE [Deleted] = False

AND ([CaseType] = "Female" OR [CaseType]="Family")

GROUP BY [Reference]

HAVING Count(*) > 1)

ORDER BY [Reference];

这将在表[客群组]其中存在有相同的参考多条记录返回所有(女/家庭)记录(以及记录未被标记为删除的地方)。

我通过ADO从VBA运行我的查询,因此可以执行UPDATE语句。我的数据库是使用JET引擎的Access兼容的.mdb。

感谢任何人都可以建议一个合适的SQL命令,我可以运行每列为了填充NULL字段与相关重复记录的非NULL字段的值。目前这超出了我对SQL的理解!谢谢。

+0

还没有添加为答案,因为它不是一个完整的答案 - 使用您的示例表减去ID&Deleted字段,这将返回一个包含其他5个字段的所有信息的单个记录:'SELECT DISTINCT * FROM(SELECT DISTINCT NZ(T1.Reference,T2.Reference)AS F1,NZ(T1.sName,T2.sName)AS F2,NZ(T1.Case_Date,T2.Case_Date)AS F3,NZ(T1.Outcome,T2.Outcome) AS F4,NZ(T1.Outcome_Date,T2.Outcome_Date)AS F5 FROM群组T1 T1 INNER JOIN群组T2 T2 ON T1.Reference = T2.Reference)WHERE NOT F1 is NULL and NOT F2 is NULL NOT NOT F3 is NULL and NOT F4 IS NULL而不是F5是NULL' –

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。