【问题标题】:How to insert into a static table using EXCEPT?如何使用 EXCEPT 插入静态表?
【发布时间】:2012-08-10 02:07:47
【问题描述】:

我正在开发一个 SSMS 2008 R2 T-sql 查询。目前我的查询看起来像:

INSERT rd_scs_only_clients
SELECT DISTINCT en.clientid_c
FROM cd.enrollments en 
WHERE en.agency_c in ('SCCR','SCRP') AND DATEDIFF(DAY, GETDATE(), startdate_d) > 90
EXCEPT
SELECT DISTINCT en.clientid_c
FROM cd.enrollments en 
WHERE en.agency_c not in ('SCCR','SCRP')

但这会导致 0 条记录,因为它似乎没有将 INSERT 语句下方的所有代码识别为属于同一查询。我该如何重写?

【问题讨论】:

    标签: tsql sql-server-2008 except


    【解决方案1】:

    将您的语句包装在 select * from 中,它应该可以工作。

    INSERT rd_scs_only_clients
    
    select * from (
    SELECT DISTINCT en.clientid_c
    FROM cd.enrollments en 
    WHERE en.agency_c in ('SCCR','SCRP') AND DATEDIFF(DAY, GETDATE(), startdate_d) > 90
    EXCEPT
    SELECT DISTINCT en.clientid_c
    FROM cd.enrollments en 
    WHERE en.agency_c not in ('SCCR','SCRP')
    )DATA
    

    【讨论】:

    • 这些都是很棒的想法,我认为它们都有效!谢谢!
    【解决方案2】:

    试试这个

    insert rd_scs_only_clients (yourclientfieldname)
    Select * from
    (
    SELECT DISTINCT en.clientid_c 
    FROM cd.enrollments en  
    WHERE en.agency_c in ('SCCR','SCRP') AND DATEDIFF(DAY, GETDATE(), startdate_d) > 90 
    EXCEPT 
    SELECT DISTINCT en.clientid_c 
    FROM cd.enrollments en  
    WHERE en.agency_c not in ('SCCR','SCRP') 
    )v
    

    如果这不起作用,则其他地方可能存在问题。试试不带插入部分的 SQL

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-28
      • 1970-01-01
      • 2012-10-03
      • 2012-03-24
      • 2017-02-16
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      相关资源
      最近更新 更多