私は同僚から以下のプログラムを継承したばかりで、問題が何であるかを理解するのに苦労しています. 私は MS SQL サーバーを使用していますが、彼は別のソフトウェアを使用していたと思います。システム内の一時テーブルとテーブルを使用するクエリを実行すると、次のエラー メッセージが表示され続けます: Msg 102, Level 15, State 1, Line 8 Incorrect syntax near '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)