2014-04-07 3 views
0

가이 같은 동적으로 생성 된 열 (내가 AreaPriority으로 정렬하고 싶지만,이 쿼리와 내가 오류 잘못된 열 이름을 얻을으로 주문할 수를 생성 Studio는 모두 잘 작동하지만 오류가 발생하는 petapoco에서). 다음은이 선택 검색어입니다.PetaPoco ORDERBY 동적 열

SELECT strGet.StrengthId as AreaId, strGet.[Description] as AreaName, 
(SELECT SUM(ias.Score) FROM ImprovementAreaScore ias WHERE ias.StrengthId=strGet.StrengthId) as AreaPriority 
FROM 
{0}.Strength strGet 
WHERE 
strGet.[Description] like '%' + @0 and [email protected] and strGet.IsStrength=0 and strGet.ToImprovementProject=1 ORDER BY AreaPriority", ... 

답변

0

을 그것은 PetaPoco 단지 ADO.net를 통해 쿼리를 실행 있기 때문에 다른 결과를 얻을 수 이상하다,하지만 당신은 표현하여 문제의 순서를 해결할 수 있습니다 (안 열 이름)은 이전 SQL 버전에서와 동일합니다.

SELECT strGet.StrengthId as AreaId, strGet.[Description] as AreaName, 
(SELECT SUM(ias.Score) FROM ImprovementAreaScore ias WHERE ias.StrengthId=strGet.StrengthId) as AreaPriority 
FROM 
{0}.Strength strGet 
WHERE 
strGet.[Description] like '%' + @0 and [email protected] and strGet.IsStrength=0 and strGet.ToImprovementProject=1 
ORDER BY (SELECT SUM(ias.Score) FROM ImprovementAreaScore ias WHERE ias.StrengthId=strGet.StrengthId)", 
0

열 목록에 하위 선택을 넣을 수 없습니다.

당신이해야 가입 ....

SELECT 
    strGet.StrengthId as AreaId, 
    strGet.[Description] as AreaName, 
    SUM(ias.Score) as AreaPriority 

FROM {0}.Strength strGet 

JOIN ImprovementAreaScore as ias ON ias.StrengthId=strGet.StrengthId 

WHERE 
    strGet.[Description] like '%' + @0 
and [email protected] 
and strGet.IsStrength=0 
and strGet.ToImprovementProject=1 

ORDER BY AreaPriority", ... 
+0

고맙습니다. SQL에서는 작동하지만 PetaPoco에서는 여전히 잘못된 열에 대해 동일한 오류가 있습니다. 나는 작은 해결 방법을 수행했지만 PetaPoco에서 작업하는 것은 좋지 않습니다. –