我正在开发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语句下面的所有代码都识别为属于同一查询。我怎么能改写这个?
答案 0 :(得分:10)
在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
答案 1 :(得分:1)
试试这个
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