2017-02-13 14 views
1

У меня есть следующие в ColdFusion:SQL сервер 2008 запросов перемещение таблицы данных от одного к другому

<cfquery name="queryInRange" datasource="Database1" > 
     select STOCK 
     from CAR 
     WHERE (CAR_INV_DATE between '#dateStartDate#' and '#dateEndDate#') 
    </cfquery> 

    <cfoutput query="queryInRange"> 

     <cfquery name="INSStocks" datasource="Database1" > 
      if not exists (select strStockNumber from Aggregates WHERE strStockNumber='#STOCK#') 
      BEGIN 
       insert into Aggregates (strStockNumber) 
        VALUES('#STOCK#') 
       END 
     </cfquery> 

    </cfoutput> 

Идея заключается в том, чтобы вытащить поле запас из одной таблицы, стол поставщика, и убедитесь, что он имеет запись во второй таблице, которую мы затем добавляем. Мне интересно, есть ли способ сделать это только в sql, так что существует цикл cf?

ответ

3

Да, есть способ сделать это с помощью всего лишь sql. На самом деле их немало. Вот один.

insert into table2 
(field1, field2, etc) 
select value1, value2, etc 
from otherTables 
etc 
except 
select value1, value2, etc 
from table1 
+0

Выполняется ли КРОМЕ так же, как IF NOT EXISTS в моем запросе? –

+1

Прочитайте [документацию на Исключении] (https://msdn.microsoft.com/en-us/library/ms188055.aspx), чтобы понять, как это работает. – Leigh

+0

Правильно, он говорит: «Возвращает любые различные значения из запроса слева от оператора EXCEPT, которые также не возвращаются из правильного запроса.« Я пытаюсь понять, как это отличается от NOT EXISTS »Задает подзапрос для тестирования для существования строк ". –

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

  • Нет связанных вопросов^_^