найти дубликат вставки в другую таблицу - PullRequest
0 голосов
/ 02 декабря 2009

У меня есть код, который загружает мои данные в таблицу SQL. Я хочу знать, что есть ли способ загрузить данные в какую-то другую таблицу, если есть какое-либо дублирующее значение. если да, можешь мне помочь. Мой запрос:

"вставить в значения t_DATA_DneFrc (RTN, AccountNbr, FirstName, MiddleName, LastName, Amount) ('" & rcdDNE ("RTN") & "', '" & rcdDNE ("AccountNbr") & "', '" & rcdDNE ("FirstName") & "','" & rcdDNE ("MiddleName") & "','" & rcdDNE ("LastName") & "','" & rcdDNE ("Amount") & "') «

, который вставит данные в таблицу t_DATA_DneFrc. Теперь я хочу изменить запрос, если есть повторяющаяся вставка этой строки в t_DATA_DneFrcDuplicate. Это возможно?

 ' Write records to Database

frmDNELoad.lblStatus.Caption = "Loading data into database......"

Dim lngRecCount As Long
lngRecCount = 0
rcdDNE.MoveFirst

 With cmdCommand
    .ActiveConnection = objConn
    .CommandText = "insert into t_DATA_DneFrc (RTN, AccountNbr, FirstName, MiddleName, LastName, Amount) values ('" & rcdDNE("RTN") & "', '" & rcdDNE("AccountNbr") & "', '" & rcdDNE("FirstName") & "', '" & rcdDNE("MiddleName") & "', '" & rcdDNE("LastName") & "', '" & rcdDNE("Amount") & "')"
    .CommandType = adCmdText

End With

Set rcddnefrc = New ADODB.Recordset
With rcddnefrc
    .ActiveConnection = objConn
    .Source = "SELECT * FROM T_DATA_DNEFRC"
    .CursorType = adOpenDynamic
    .CursorLocation = adUseClient
    .LockType = adLockOptimistic
    .Open
End With

Do Until rcdDNE.EOF
    lngRecCount = lngRecCount + 1
    frmDNELoad.lblStatus.Caption = "Adding record " & lngRecCount & " of " & rcdDNE.RecordCount & " to database."
    frmDNELoad.Refresh
    DoEvents
    Call CommitNew
    rcdDNE.MoveNext
Loop

frmDNELoad.lblStatus.Caption = "DNE Processing Complete."
frmDNELoad.Refresh

End Function
Sub CommitNew()

'     Add records to DneFrc table
With rcddnefrc
    .Requery
    .AddNew
    .Fields![RTN] = rcdDNE.Fields![RTN]
    .Fields![AccountNbr] = rcdDNE.Fields![AccountNbr]
    .Fields![FirstName] = rcdDNE.Fields![FirstName]
    .Fields![MiddleName] = rcdDNE.Fields![MiddleName]
    .Fields![LastName] = rcdDNE.Fields![LastName]
    .Fields![Amount] = rcdDNE.Fields![Amount]
    .Update
End With

1 Ответ

3 голосов
/ 02 декабря 2009

Вам нужно будет выполнить второй запрос, который должен выглядеть как

insert into t_DATA_DneFrcDuplicate 
      (RTN, AccountNbr, FirstName, MiddleName, 
       LastName, Amount, Occurances)
  select RTN, AccountNbr, FirstName, MiddleName, 
         LastName, Amount, COUNT(*)
  from   t_DATA_DneFrc
  group by RTN, AccountNbr, FirstName, MiddleName, 
           LastName, Amount
  having COUNT(*) > 1

(Это синтаксис Oracle; надеюсь, это будет работать и для вас.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...