2016-01-13 113 views
0

我试图用查询结果创建一个新表。我在SQL Server 2012中创建SQL Server表错误

CREATE TABLE [Service Contract Data].[dbo].[filtered_data] AS 
(
    SELECT * 
    FROM [Service Contract Data].[dbo].[New Data] 
    LEFT JOIN [Service Contract Data].[dbo].[OctMktSeg] ON [Service Contract Data].[dbo].[New Data].[Customer ID] = [Service Contract Data].[dbo].[OctMktSeg].[Account Number] 
    LEFT JOIN [Service Contract Data].[dbo].[tblMktSeg&MPI] ON [Service Contract Data].[dbo].[New Data].[Customer ID] = [Service Contract Data].[dbo].[tblMktSeg&MPI].[Customer ID1] 
    WHERE 
     (MKTSEG LIKE '%Repair%' OR MKTSEG LIKE 'Auto Glass' OR 
     MKTSEG LIKE 'IA - Individual' OR MKTSEG IS NULL) 
     AND (MPI LIKE 'N' OR MPI IS NULL) 
     AND [Item Category] LIKE '%Term' 
     AND [Month] >= '2015-01-01 00:00:00.000') 
    ; 

它不断告诉我有“语法错误”附近首开括号工作,我不知道为什么。思考?

+0

是否有连接表重叠列在查询中? –

+0

select语句是否自己正确执行? – Turophile

回答

1

我不知道这个语法在SQL SERVER中是否有效,你以前试过这个吗? 这是为了创建一个新的表有效语法:

SELECT 
-- SPECIFY THE NAME OF THE COLUMNS IN THE SELECT LIST, AVOID * 
* 
--INSERT DATA INTO NEW TABLE 
INTO [Service Contract Data].[dbo].[filtered_data] 
from [Service Contract Data].[dbo].[New Data] t1 
left join [Service Contract Data].[dbo].[OctMktSeg] t2 ON t1.[Customer ID] = t2.[Account Number] 
left join [Service Contract Data].[dbo].[tblMktSeg&MPI] t3 on t1.[Customer ID] = t3.[Customer ID1] 
WHERE (MKTSEG like '%Repair%' or MKTSEG like 'Auto Glass' or MKTSEG like 'IA - Individual' or MKTSEG is null) 
    and (MPI like 'N' or MPI is null) 
    and [Item Category] like '%Term' 
    and [Month] >= '2015-01-01 00:00:00.000' 
+0

这工作!谢谢 – Emma

1

它看起来像你错过了一个开放的peren (之后你WHERE

WHERE ((MKTSEG like '%Repair%' or MKTSEG like 'Auto Glass' or MKTSEG like 'IA - Individual' or MKTSEG is null) 
and (MPI like 'N' or MPI is null) 
and [Item Category] like '%Term' 
and [Month] >= '2015-01-01 00:00:00.000') 
+0

查询自己正确执行,所以我不认为这是选择查询的问题 – Emma