查询疑问
执行以下语句1:
SELECT EM007 FROM [EAPS].[dbo].APSEMP WHERE EM001 = 'hs'
'加工中心1','加工中心2','加工中心3'
SELECT [JO002] ,[JO003]FROM [EAPS].[dbo].[APSJOB]whereJO015 IN ('加工中心1','加工中心2','加工中心3')
SELECT [JO002] ,[JO003]FROM [EAPS].[dbo].[APSJOB]whereJO015 IN (SELECT EM007 FROM [EAPS].[dbo].APSEMP WHERE EM001 = 'hs')
declare @sql nvarchar(4000)set @sql = 'SELECT [JO002] ,[JO003]FROM [EAPS].[dbo].[APSJOB]whereJO015 IN ('+SELECT EM007 FROM [EAPS].[dbo].APSEMP WHERE EM001 = 'hs'+')'exec(@sql)
[解决办法]
DECLARE @STR VARCHAR(200)SET @STR=''EXEC('SELECT @STR=EM007 FROM [EAPS].[dbo].APSEMP WHERE EM001 = ''''hs'''''SELECT [JO002] ,[JO003]FROM [EAPS].[dbo].[APSJOB]whereJO015 IN ('+@STR+')'
[解决办法]
SELECT [JO002], [JO003]FROM [EAPS].[dbo].[APSJOB] TAWHERE EXISTS ( SELECT 1 FROM [EAPS].[dbo].APSEMP TB WHERE TB.EM001 = 'hs' AND TA.J0015 = TB.EM007 )
[解决办法]
DECLARE @STR VARCHAR(200)SET @STR=''SELECT @STR=EM007 FROM [EAPS].[dbo].APSEMP WHERE EM001 = 'hs'EXEC('SELECT [JO002] ,[JO003]FROM [EAPS].[dbo].[APSJOB]whereJO015 IN ('+@STR+')'