2016-03-08 3 views
0

У меня проблема при попытке добавить строки из tempTable в таблицу. Проблема заключается в том, что он добавляет строки из таблицы TempDealer, даже если они уже находятся в таблице Dealership (обратите внимание, что я указываю в инструкции WHERE WHERE td.supplier_ref NOT IN (SELECT поставщик_ref FROM @dealerStatus). Каждый раз, когда я запускаю .?. хранимая процедура добавляет снова все строки из TempDealer в таблице дилерских, когда он должен только добавить их раз Любые идеи спасибо заранееИмпорт из временной таблицы SQL

 INSERT INTO @dealerStatus (dealerId, supplier_ref, [add], [timestamp]) 
      SELECT NULL, td.supplier_ref, 1, GETDATE() 
       FROM TempDealer td 
       WHERE td.supplier_ref NOT IN (SELECT supplier_ref FROM @dealerStatus) 

      INSERT INTO Dealership( 
        dealership_name, 
        telephone, 
        fax, 
        sales_email, 
        support_email, 
        service_mask, 
        address1, 
        address2, 
        town, 
        county, 
        postcode, 
        website, 
        date_modified, 
        supplier_ref, 
        dealer_type, 
        county_id, 
        town_id, 
        area_id, 
        district_id, 
        longitude, 
        latitude 
        ) 

       SELECT DISTINCT 
         [updateSource].leasing_broker_name, 
         [updateSource].telephone, 
         [updateSource].fax_number, 
         [updateSource].email, 
         [updateSource].support_email, 
         [updateSource].service_mask, 
         [updateSource].address1, 
         [updateSource].address2, 
         [updateSource].town, 
         [updateSource].county, 
         [updateSource].post_code, 
         [updateSource].web_address, 
         GETDATE(), 
         [updateSource].supplier_ref, 
         1, 
         [updateSource].county_id, 
         [updateSource].town_id, 
         [updateSource].region, 
         [updateSource].district, 
         [updateSource].longitude, 
         [updateSource].latitude 
        FROM 
         @dealerStatus dealerUpdateStatus INNER JOIN 
         TempDealer [updateSource] ON dealerUpdateStatus.supplier_ref = updateSource.supplier_ref 
        WHERE 
         dealerUpdateStatus.[add] = 1  
+0

Прямо сейчас вы говорите: «Вставьте в (at) dealerStatus каждую строку из TempDealer, у которой нет соответствия поставщика, который уже находится в (at) dealerStatus». заключается в том, что когда он проверяет это, (at) dealerStatus пуст. Я думаю, вам нужно изменить предложение WHERE на NOT IN (SELECT supplier_ref FROM Dealership). –

+0

Я сделал, он ничего не вставляет ничего WHERE td.supplier_ref NOT IN (SELECT supplier_ref FROM Dealership). Серьезно это сводит меня с ума, это не может быть так сложно – Tofetopo

+0

Трудно понять, что с ним не так, потому что, очевидно, я не тот, кто смотрит на столы, но позвольте мне поближе посмотреть. –

ответ

1

Я отсортирован его так:

 INSERT INTO @dealerStatus (dealerId, supplier_ref, [add], [timestamp]) 
      SELECT NULL, td.supplier_ref, 1, GETDATE() 
       FROM TempDealer td 
       WHERE td.supplier_ref NOT IN (SELECT supplier_ref FROM Dealership WHERE dealership.supplier_ref IS NOT NULL and dealership.dealer_type = 1) 
+0

Рад, что я смог сортировать помощь, возможно, может быть? XD –

Смежные вопросы