2017-02-13 80 views
1

数据我已经在ColdFusion中以下内容:SQL Server 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

EXCEPT与我的查询中的IF NOT EXISTS的工作方式不同吗? –

+1

阅读[Except文档](https://msdn.microsoft.com/en-us/library/ms188055.aspx)了解它是如何工作的。 – Leigh

+0

正确的,它说:“从查询中返回EXCEPT运算符左侧的任何不同的值,这些值也不是从正确的查询中返回的。”我试图理解它与NOT EXISTS的不同之处“指定要测试的子查询对于行的存在。“ –

相关问题