Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 SQL Server 2005 Forums
 Transact-SQL (2005)
 Invalid column name

Author  Topic 

zhshqzyc
Posting Yak Master

240 Posts

Posted - 2010-05-17 : 17:49:43
Hi,

I have three tables,
MESSAGES which has columns MessageGroup, LanguageCode,MessageID and Message.
PERMISSION_GROUP which has columns GRP_ID, GRP_DESCR,LANG_LCLE_ID.
EMPLOYEE_GROUP which has columns EMP_ID, GRP_ID, STR_ID
I use the script
SELECT ','+A.Message from(SELECT CONVERT(INT,Substring(MessageID,16,LEN(MessageID)-15)) AS GRP_ID,Message,LanguageCode
FROM MESSAGES
WHERE MessageGroup ='Screen'
and MessageID LIKE 'PERMISSION_%'
and CONVERT(INT,Substring(MessageID,16,LEN(MessageID)-15)) in (1,2,3)
AND LanguageCode = 1033) as A
INNER join PERMISSION_GROUP B
on A.GRP_ID=B.GRP_ID INNER JOIN EMPLOYEE_GROUP C
ON B.GRP_ID=C.GRP_ID AND B.LANG_LCLE_ID = 1033
WHERE
C.EMP_ID='A1PATEL'
FOR XML PATH('')

The question is that I got an error "Invalid column name 'LANG_LCLE_ID'.
The sample data
EMPLOYEE_GROUP
EMP_ID GRP_ID STR_ID
AAA 1 900
AAA 2 900
AAB 1 900
BBB 1 900

PERMISSION_GROUP
GRP_ID GRP_DESCR LANG_LCLE_ID
1 Cashier 1033
1 Cashier 3084
2 Supervisor 1033
2 Supervisor 3084

MESSAGES
MessageGroup LanguageCode MessageID Message
Menu 1033 KEYF2 E_ESC
Screen 1033 test E_test

I don't know how to deal with the error.
Thanks for pointing to my wrong.

jimf
Master Smack Fu Yak Hacker

2875 Posts

Posted - 2010-05-17 : 20:21:51
You just combined two statements. Change

on A.GRP_ID=B.GRP_ID INNER JOIN EMPLOYEE_GROUP C
ON B.GRP_ID=C.GRP_ID AND B.LANG_LCLE_ID = 1033



to

on A.GRP_ID=B.GRP_ID INNER JOIN EMPLOYEE_GROUP C
ON B.GRP_ID=C.GRP_ID AND B.LANG_LCLE_ID
WHERE
C.EMP_ID='A1PATEL'
AND B.LANG_LCLE_ID = 1033
FOR XML PATH('')




Everyday I learn something that somebody else already knew
Go to Top of Page

visakh16
Very Important crosS Applying yaK Herder

52326 Posts

Posted - 2010-05-18 : 01:09:15
quote:
Originally posted by jimf

You just combined two statements. Change

on A.GRP_ID=B.GRP_ID INNER JOIN EMPLOYEE_GROUP C
ON B.GRP_ID=C.GRP_ID AND B.LANG_LCLE_ID = 1033



to

on A.GRP_ID=B.GRP_ID INNER JOIN EMPLOYEE_GROUP C
ON B.GRP_ID=C.GRP_ID AND B.LANG_LCLE_ID
WHERE
C.EMP_ID='A1PATEL'
AND B.LANG_LCLE_ID = 1033
FOR XML PATH('')




Everyday I learn something that somebody else already knew



------------------------------------------------------------------------------------------------------
SQL Server MVP
http://visakhm.blogspot.com/

Go to Top of Page
   

- Advertisement -