こんにちは私はここで元従業員が私たちの会社で行った非常に複雑な選択ステートメントを持っています それは、応募者によって適用されたジョブのすべてのリストを返します。 一意のジョブだけを取得する必要があるという点を除いて、クエリは正常に動作しています。 DISTINCTまたはGROUP BYに問題があります。 重複は、ジョブと申請者に関連するテーブルに何もない重複があるために発生します。だから誰も私がこれを理解するのを助けることができますか?
PS:私のものではないクエリ構造に責任を負わないでください。ありがとう!SQL ServerのGROUPINGとDISTINCT
SELECT
J.JobsID,
J.JobsHeader,
I.IndustryName,
J.JobDescription,
J.JobBreif,
J.JobRequirement,
J.JobLocation,
(SELECT CASE WHEN J.HideSalary = 1 THEN 'hidden' ELSE J.Salary END) AS 'Salary',
J.HideSalary,
(SELECT CASE WHEN J.HideCompanyName = 1 THEN 'hidden' ELSE COMP.CompanyName END) AS 'CompanyName',
J.HideCompanyName,
J.CurrentStatus,
J.ExperienceInMonth,
J.ExperienceInYear,
Q.QualificationName,
J.HourID,
J.Age,
J.Gender,
L.CityName,
J.UAENationals,
J.SeniorExecutive,
J.StartDate,
J.EndDate,
S.SpecizationName,
CIRT.SpecizationName AS 'CirtificationName',
J.AvailType,
J.CreatedOn,
J.CreatedBy,
J.ModifiedOn,
J.ModifiedBy,
N.CountryName,
--ETJA.CreatedOn AS 'AppliedOn',
'12/01/2012' AS 'AppliedOn',
ETJA.JobsId AS 'AppliedJobId'
FROM dbo.EmployeeToJobsApplied ETJA
INNER JOIN dbo.Jobs J ON J.JobsID = ETJA.JobsId
INNER JOIN dbo.Employers COMP ON J.CompanyID = COMP.EmployerId
LEFT JOIN dbo.Experience E ON J.ExperienceInYear = E.ExperienceID
LEFT JOIN dbo.Industry I ON J.JobIndustryId = I.IndustryID
LEFT JOIN dbo.Location L ON J.LocationID = L.CityId
LEFT JOIN dbo.Qualification Q ON J.QualificationID = Q.QualificationID
LEFT JOIN dbo.Nation N ON J.CountryID = N.CountryID
LEFT JOIN dbo.Specization S ON J.SpecilizationId = S.SpecizationID
LEFT JOIN dbo.Specization CIRT ON J.CirtificationId = CIRT.SpecizationID
WHERE ETJA.Applied = 1 AND ETJA.EmployeeId=1
集計関数(合計、カウントなど)を使用していないため、GROUPを使用する必要はありません。したがって、DISTINCTキーワードを含めると、重複したジョブを取得するような異なる値が返されます。あなたは本当にすべてのテーブルとすべてのそれらの値が返される必要がありますか? – kaj