終了しました。この質問は
トピック外です。現在、回答を受け付けていません。
回答
SELECT a.surveyid,* FROM [360HRSurvey] inner join ( SELECT a.EmpCode,a.surveyid FROM surveyusers a where a.surveyid = 80 and a.EmpCode NOT IN (SELECT p.EmpID FROM empsurveyselection p WHERE p.surveyid =80)) a on a.EmpCode=sempid where empid = ( SELECT empid from [360HRSurveyEmployee] where surveyid = 80)
コメント
回答
ivではなくsurveyid
を使用する必要がありますid = “c87aefe64d”>
。 surveyusers as a
はsub-query
で宣言しているため、メインクエリでa.surveyid
にアクセスできません。
コメント
エラーの理由は JaiminSoniの回答。
結果にsurveyid
を含めたいので、これは[360HRSurvey]
テーブルでは、この特定のクエリにSELECT 80 AS surveyid, * ...
を使用できます。surveyid
がそうでない場合ただし、より複雑なクエリでは、この属性を持つテーブルに参加できます。このテーブルがsurveyusers
であり、FOREIGN KEY
[360HRSurvey] (sempid)
からREFERENCES surveyusers(EmpCode)
、クエリを書き換えることができます:
SELECT a.surveyid, hrs.* FROM [360HRSurvey] AS hrs JOIN surveyusers AS a ON a.EmpCode = hrs.sempid WHERE a.surveyid = 80 -- this condition can be altered or removed AND a.EmpCode NOT IN ( SELECT p.EmpID FROM empsurveyselection p WHERE p.surveyid = a.surveyid ) AND a.empid = ( -- unclear if it"s a.empid or hrs.empid SELECT hrsemp.empid FROM [360HRSurveyEmployee] AS hrsemp WHERE hrsemp.surveyid = a.surveyid ) ;
SELECT su.surveyid,b.* FROM surveyusers SU RIGHT JOIN (SELECT * FROM [360HRSurvey] where sempid NOT IN ( SELECT a.EmpCode FROM surveyusers a where a.EmpCode IN (SELECT p.EmpID FROM empsurveyselection p where deptid = 9 ) and empid IN ( SELECT empid from [360HRSurveyEmployee] ))) B ON su.EmpCode = b.sempid Order by surveyid desc
myslelfを修正
コメント