Sql 消息102,第15级,状态1,第8行'附近语法不正确;月份';

Sql 消息102,第15级,状态1,第8行'附近语法不正确;月份';,sql,sql-server,Sql,Sql Server,我刚从一位同事那里继承了下面的程序,我很难弄清楚问题是什么。我使用的是MS SQL server,我相信他使用的是不同的软件。当我运行使用临时表和系统中的一个表的查询时,我不断收到错误消息:Msg 102,级别15,状态1,第8行“month”附近的语法不正确。。同样,我似乎不知道如何纠正语法问题 CREATE TABLE #Temp_Contact ( Person_ID INT, Contact_Date DATETIME, Success INT) GO INSE

我刚从一位同事那里继承了下面的程序,我很难弄清楚问题是什么。我使用的是MS SQL server,我相信他使用的是不同的软件。当我运行使用临时表和系统中的一个表的查询时,我不断收到错误消息:Msg 102,级别15,状态1,第8行“month”附近的语法不正确。。同样,我似乎不知道如何纠正语法问题

CREATE TABLE #Temp_Contact (
    Person_ID INT,
    Contact_Date DATETIME,
    Success INT)
GO

INSERT INTO #Temp_Contact (Person_ID, Contact_Date, Success)
SELECT Person_ID, Contact_Date,
       gw_ppp.dbo.fnWasContacted(Contact_Method, Contact_Result, Participant)
FROM gw_dw.dbo.DimContacts_Child
GO

CREATE TABLE #Temp_Months (Month VARCHAR(30))
INSERT INTO #Temp_Months 
SELECT 'January' UNION ALL
SELECT 'February' UNION ALL
SELECT 'March' UNION ALL
SELECT 'April' UNION ALL
SELECT 'May' UNION ALL
SELECT 'June' UNION ALL
SELECT 'July' UNION ALL
SELECT 'August' UNION ALL
SELECT 'September' UNION ALL
SELECT 'October' UNION ALL
SELECT 'November' UNION ALL
SELECT 'December';
这是生成错误消息的查询

SELECT lft.Person_ID,  
m.Month month, 
gw_PPP.dbo.fnFmtContact(src.cnt) result
  FROM gw_dw.dbo.DimContacts_Child AS lft
  JOIN  #Temp_Months m
  on m.Month=month (lft.Contact_Date)
  LEFT OUTER JOIN
    (SELECT Person_ID, 
     DATENAME(month, MONTH(Contact_Date)) as Month, 
     sum(Success) as cnt
     FROM #Temp_Contact
     GROUP BY Person_ID, DATENAME(month, MONTH(Contact_Date))) AS src
  ON (lft.Person_ID = src.Person_ID AND month (lft.Contact_Date) = src.month)  
我在
临时联系人中看不到月份

CREATE TABLE #Temp_Contact (
    Person_ID INT,
    Contact_Date DATETIME,
    Success INT)
GO
我在
临时联系人中看不到月份

CREATE TABLE #Temp_Contact (
    Person_ID INT,
    Contact_Date DATETIME,
    Success INT)
GO

此处缺少一个逗号:

GROUP BY Person_ID, DATENAME(month, MONTH(Contact_Date)), month) AS src
                                                        ^
您有两个
JOIN
子句,但只有一个
ON
子句。每次加入都需要一个


您缺少
#Temp_Contact
表中的
month
字段。

此处缺少逗号:

GROUP BY Person_ID, DATENAME(month, MONTH(Contact_Date)), month) AS src
                                                        ^
您有两个
JOIN
子句,但只有一个
ON
子句。每次加入都需要一个


您缺少
#Temp_Contact
表中的
month
字段。

一个问题是m.month=month(lft.Contact_Date)
条件
m.Month
VARCHAR
Month(lft.Contact\u Date)
int
一个问题是m.Month=Month(lft.Contact\u Date)
条件
m.Month
VARCHAR
Month(lft.Contact\u Date)
int