2016-03-08 90 views
0

尝试将tempTable中的行添加到表时遇到问题。问题是它添加了TempDealer表中的行,即使它们已经在Dealership表中(请注意,我在WHERE语句中指定WHERE td.supplier_ref NOT IN(SELECT supplier_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

现在你说“插入到经销商状态每一行从TempDealer没有一个供应商参考匹配已经在(在)dealerStatus”那里的问题。是当它检查这个时,(在)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 –