1

2つのMSAccessテーブルから1つのmsアクセステーブルに挿入しようとしています。2つのテーブルの1つに、重複する値を含む列があります。私が今持っているのは:

 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 & ";"

問題は、XML_MESSAGE_STRUCTUREテーブルで、S.ElementNoが複数回表示されることがあり、その結果、特定のElementNoの宛先テーブルに複数のレコードが取得されることです。これは欲しくない。

どんな助けでも感謝されます。

リコ

4

1 に答える 1

0

の代わりにSELECT DISTINCT、ElementNo を除くすべてのフィールドでグループ化できます。ElementNo には、次を選択しますMax(ElementNo)

 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, " & _
...
                                 ";"
于 2013-02-27T12:59:39.000 に答える