Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将两个表插入到一个表中,同时忽略重复项_Sql_Vb.net_Ms Access - Fatal编程技术网

Sql 将两个表插入到一个表中,同时忽略重复项

Sql 将两个表插入到一个表中,同时忽略重复项,sql,vb.net,ms-access,Sql,Vb.net,Ms Access,我正在尝试将两个MS Access表插入到一个MS Access表中。 在两个表中的一个表中,有一列包含重复值。 我目前的情况是: 问题在于,在XML_MESSAGE_STRUCTURE表中,S.ElementNo有时会多次通知,这就意味着我在目标表中也得到了特定ElementNo的多条记录。这是我不想要的 欢迎任何帮助 Rico您可以按除ElementNo之外的所有字段分组,而不是选择DISTINCT。对于ElementNo,您可以选择Max(ElementNo): 最简单的方法是给eleme

我正在尝试将两个MS Access表插入到一个MS Access表中。 在两个表中的一个表中,有一列包含重复值。 我目前的情况是:

问题在于,在XML_MESSAGE_STRUCTURE表中,S.ElementNo有时会多次通知,这就意味着我在目标表中也得到了特定ElementNo的多条记录。这是我不想要的

欢迎任何帮助


Rico

您可以按除ElementNo之外的所有字段分组,而不是选择DISTINCT。对于ElementNo,您可以选择
Max(ElementNo)


最简单的方法是给elementNo添加一个唯一的索引。所有的othjer字段也是一样的吗?如果是,请使用SELECT DISTINCT。如果没有,您将如何选择应插入哪些记录以及应排除哪些记录?请注意,这不是一个选项,因为将有重复的elementNo,但仅在TCParmID不相同的地方。换句话说,对于每个测试用例(TCParmID),每个元素都应该只有一个no。我的意思是索引TCParmID+ElementNo=Yes,重复项不好:
在tablename([TCParmID],[ElementNo])上创建唯一的索引
 Dim MySQL As String = "INSERT INTO XML_TEST_CASE (" & _
                                    "TCParmId, " & _
                                    "TestCase, " & _
                                    "MessageType, " & _
                                    "FileNo,  " & _
                                    "InstructionNo,  " & _
                                    "TransactionNo,  " & _
                                    "ElementNo,  " & _
                                    "MessageSection, " & _
                                    "ElementLevel, " & _
                                    "FullElementPath, " & _
                                    "ElementValue, " & _
                                    "ElementValueNew, " & _
                                    "NameSpace, " & _
                                    "NameSpaceValue, " & _
                                    "Attribute, " & _
                                    "AttributeValue, " & _
                                    "TestCaseDescription) " & _
                                    "SELECT " & _
                                    "P.TCParmId, " & _
                                    "P.TestCase, " & _
                                    "P.MessageType, " & _
                                    "P.FileNo, " & _
                                    "P.InstructionNo, " & _
                                    "P.TransactionNo, " & _
                                    "S.ElementNo, " & _
                                    "S.MessageSection, " & _
                                    "S.ElementLevel, " & _
                                    "S.ElementPath + S.Element, " & _
                                    "S.ElementValue, " & _
                                    "S.ElementValue, " & _
                                    "S.NameSpace, " & _
                                    "S.NameSpaceValue, " & _
                                    "S.Attribute, " & _
                                    "S.AttributeValue, " & _
                                    "P.TestCaseDescription " & _
                                    "FROM XML_TEST_CASE_PARAMETER P, XML_MESSAGE_STRUCTURE S " & _
                                    "WHERE S.MessageType = P.MessageType " & _
                                    "AND P.TestCase = '" & MyTestCase & "' " & _
                                    "AND P.MessageType = '" & MyMessageType & "' " & _
                                    "AND P.FileNo = " & MyFileNo & " " & _
                                    "AND P.InstructionNo = " & MyInstructionNo & " " & _
                                    "AND P.TransactionNo = " & MyTransactionNo & ";"
 Dim MySQL As String = "INSERT INTO XML_TEST_CASE (" & _
                                "TCParmId, " & _
                                "TestCase, " & _
                                "MessageType, " & _
                                "FileNo,  " & _
                                "InstructionNo,  " & _
                                "TransactionNo,  " & _
                                "ElementNo,  " & _
                                "MessageSection, " & _
...
                                "SELECT " & _
                                "P.TCParmId, " & _
                                "P.TestCase, " & _
                                "P.MessageType, " & _
                                "P.FileNo, " & _
                                "P.InstructionNo, " & _
                                "P.TransactionNo, " & _
                                "Max(S.ElementNo), " & _
                                "S.MessageSection, " & _
...
                               "FROM XML_TEST_CASE_PARAMETER P, XML_MESSAGE_STRUCTURE S " & _
                                "WHERE S.MessageType = P.MessageType " & _
                                "AND P.TestCase = '" & MyTestCase & "' " & _
                                "AND P.MessageType = '" & MyMessageType & "' " & _
                                "AND P.FileNo = " & MyFileNo & " " & _
                                "AND P.InstructionNo = " & MyInstructionNo & " " & _
                                "AND P.TransactionNo = " & MyTransactionNo & _
                                "GROUP BY " & _
                                "P.TCParmId, " & _
                                "P.TestCase, " & _
                                "P.MessageType, " & _
                                "P.FileNo, " & _
                                "P.InstructionNo, " & _
                                "P.TransactionNo, " & _
                                "S.MessageSection, " & _
...
                                 ";"