2010-12-31 29 views
1
SELECT Ad.Id, Newspaper, 
    (select Organization from JobOrganization where JobOrganization.Id = Ad.OrganizationId) as Organization, 
    Ad.PublishDate, Ad.LastDate,Ad.Url, Job.Id as JobId, 
    (select JobTitle from JobTitle where JobTitle.Id = Job.TitleId) as JobTitle1, 
    QualificationId, ExpInYears, CategoryId 
    FROM Ad inner join Job on Ad.Id = Job.AdId 
    Where JobTitle1 Like @title or @title is null 
    Order by 
case When @sortCol='PublishDate' and @sortDir='ASC' Then Ad.PublishDate End ASC, 
case When @sortCol='PublishDate' and @sortDir='DESC' Then Ad.PublishDate End DESC, 
case When @sortCol='LastDate' and @sortDir='ASC' Then Ad.LastDate End ASC, 
case When @sortCol='LastDate' and @sortDir='DESC' Then Ad.LastDate End DESC 

エラー:列名 'JobTitle1'が無効です。無効な列名

私は

+3

'JOIN'ではなく' Organization'と 'JobTitle'を取得するためにサブクエリを使用している特定の理由はありますか? 'JOIN'を使用した場合、問題はなくなります... – AakashM

+0

パーフェクト@Aakash – coure2011

答えて

3

ようにしてみてください、私はその怖いSQL-2008を使用していますあなたは句、

SELECT Ad.Id, Newspaper, 
    (select Organization from JobOrganization where JobOrganization.Id = Ad.OrganizationId) as Organization, 
    Ad.PublishDate, Ad.LastDate,Ad.Url, Job.Id as JobId, 
    (select JobTitle from JobTitle where JobTitle.Id = Job.TitleId) as JobTitle1, 
    QualificationId, ExpInYears, CategoryId 
    FROM Ad inner join Job on Ad.Id = Job.AdId 
    Where (select JobTitle from JobTitle where JobTitle.Id = Job.TitleId)Like @title or @title is null 
    Order by 
case When @sortCol='PublishDate' and @sortDir='ASC' Then Ad.PublishDate End ASC, 
case When @sortCol='PublishDate' and @sortDir='DESC' Then Ad.PublishDate End DESC, 
case When @sortCol='LastDate' and @sortDir='ASC' Then Ad.LastDate End ASC, 
case When @sortCol='LastDate' and @sortDir='DESC' Then Ad.LastDate End DESC 

ので、その場合には、私はビューを使用しているところでエイリアスを使用することはできません。..

+0

リンクが動作しません。 :( – JedatKinports

1

JobTitle1参照名のスコープは、(@titleまたは@title同様JobTitle1がnullの場合は)ここに欠けている、 この(Where Ad.JobTitle1 Like @title or @title is null)

0

WHERE句はSELECT句の前に評価されるため、WHERE句にエイリアスを使用することはできません。