當我在SQL Server Management Studio中執行這個查詢,出現此錯誤:無效列名工作室
'Msg 207, Level 16, State 1, Line 1
Invalid column name 'ACCOUNT_NO'.'
這是查詢代碼:
DECLARE @largeaccnumber INT = ACCOUNT_NO
DECLARE @smallaccnumber INT
SET @smallaccnumber = (SELECT LEFT(@largeaccnumber, 6))
SELECT DNADRX.CODE,
DNADDR.NAME,
DNADDR.TYPE,
DNADDR.MAIL_NAME,
ADDRESS_LINE1,
ADDRESS_LINE2,
ADDRESS_LINE3,
TOWN_CITY,
COUNTY_STATE,
COUNTY_STATE_CODE,
COUNTRY,
POST_ZIP,
LAST_STAT_DATE,
ACCOUNT_NO
FROM DNADRX,
DNADDR,
BACCNT
WHERE DNADDR.CODE = DNADRX.ADDRESS_CODE
AND DNADDR.CODE = @smallaccnumber
ORDER BY DNADRX.CODE
我想該查詢從3個不同的表格(DNADRX,DNADDR,BACCNT)中顯示不同表格的列中的數據(該列在查詢的SELECT位中列出),並且將所有3個表格鏈接在一起的因子是6位數代碼(BACCNT表中的ACCOUNT_NO,DNADRX表中的ADDRESS_CODE和第e DNADDR表)。最初,來自表BACCNT的ACCOUNT_NO爲8位數字,但我使用SELECT LEFT將其減少到前6位,並將此6位數值分配給變量@smallaccnumber。
每當我嘗試執行查詢時,它都會告訴我'ACCOUNT_NO'是無效的代碼名稱。我檢查了拼寫,使用智能感知進行刷新,並在查詢的第一行嘗試了'BACCNT.ACCOUNT_NO'而不是'ACCOUNT_NO',但它仍然不起作用(相反,它表示多部分標識符無法綁定當我嘗試'BACCNT.ACCOUNT_NO')。
對於SQL編碼,我真的很陌生,所以很抱歉,如果我的問題的答案非常簡單。
謝謝你的幫助:)
'DECLARE @largeaccnumber INT = ACCOUNT_NO'這不是有效的語法,你不能只是創建一個變量,併爲它分配一個沒有表或任何東西的列 – Lamak
@Lamak ACCOUNT_NO是表中的一列BACCNT - 我想從這個列中賦值給一個變量(這樣我可以使數字較短,從8到6位數字)。 我有點不確定你的意思是'沒有表或任何東西' - 數據庫中有許多表,包括表BACCNT。 你能幫我弄清楚創建變量的有效語法是什麼嗎?非常感謝:) – aylissewonder
假設你在'BACCNT'中有多行,你想用哪一行來爲變量賦值? – GarethD