2010-06-16 5 views
0

.net 2.0에서 subsonic 2.2를 사용 중이며 "그룹화 기준"을 포함 할 때 오류가 발생합니다.아음속. 그룹을 사용하는 모호한 열 이름

원래 나는이 코드를 가지고, 그것은 완벽하게 작동 :

SqlQuery etResourceTitle = new Select(ResTitleOngoing.Columns.ResourceTitleID, 
              ResTitleOngoing.Columns.ResourceTitle, 
              VenVendor.Columns.Title, 
              ResTitleOngoingStatus.Columns.Status).From(Tables.ResTitleOngoing); 

    etResourceTitle.InnerJoin(ResTitleOngoingStatus.ResourceTitleIDColumn, ResTitleOngoing.ResourceTitleIDColumn); 
    etResourceTitle.LeftOuterJoin(VenVendor.VendorIDColumn, ResTitleOngoing.VendorIDColumn); 

    etResourceTitle.OrderAsc(ResTitleOngoing.Columns.ResourceTitle); 

    etResourceTitle.ExecuteDataSet(); 

가 그럼 난 "그룹으로"를 추가, 그래서 이것은 내 코드입니다 : 나는 오류가 발생했습니다

SqlQuery etResourceTitle = new Select(Aggregate.GroupBy(ResTitleOngoing.Columns.ResourceTitleID), 
              Aggregate.GroupBy(ResTitleOngoing.Columns.ResourceTitle), 
              Aggregate.GroupBy(VenVendor.Columns.Title), 
              Aggregate.GroupBy(ResTitleOngoingStatus.Columns.Status)).From(Tables.ResTitleOngoing); 

    etResourceTitle.InnerJoin(ResTitleOngoingStatus.ResourceTitleIDColumn, ResTitleOngoing.ResourceTitleIDColumn); 
    etResourceTitle.LeftOuterJoin(VenVendor.VendorIDColumn, ResTitleOngoing.VendorIDColumn); 

    etResourceTitle.OrderAsc(ResTitleOngoing.Columns.ResourceTitle); 

    etResourceTitle.ExecuteDataSet(); 

: "모호한 열 이름 'ResourceTitleID'. "

etResourceTitle.BuildSqlStatement() 실행 중. 난 얻었다 :

SELECT ResourceTitleID AS 'GroupByOfResourceTitleID' ResourceTitle AS 'GroupByOfResourceTitle', 'GroupByOfTitle'AS 제목 'GroupByOfStatus' [DBO] FROM AS 여부 [RES_TitleOngoing] INNER가 [DBO]에 가입.. [ResourceTitleOngoing]. [Resource_TitleOngoing]. [Resource_TitleOngoingStatus]. [ResourceTitleID] LEFT OUTER JOIN [dbo]. [VEN_Vendor] ON [dbo]. [RES_TitleOngoing]. [VendorID] = [dbo]. [VEN_Vendor]. [VendorID] GROUP BY ResourceTitleID, ResourceTitle, Title, Status ORDER BY ResourceTitle ASC

누군가가이 오류로 나를 도울 수 있습니다. RES_TitleOngoing 및 RES_TitleOngoingStatus

감사 앨런

답변

1

모두 당신의 테이블은 열 이름 ResourceTitleID를 포함하지만 SQL Server가이 그룹에 원하는 ResourceTitleID 알고하지 않도록 당신은 일부에 의해 그룹에서 단지 ResourceTitleID를 지정했습니다.

참고 :

Aggregate.GroupBy(ResTitleOngoing.ResourceTitleIDColumn) 
Aggregate.GroupBy(ResTitleOngoing.Schema.QualifiedName + "." 
        + ResTitleOngoing.Columns.ResourceTitleID) 
+0

감사 SchlaWiener :

ResTitleOngoing.Columns.ResourceTitleID 

그냥 당신이 대신 중 하나를 시도해야하는 문자열 "ResourceTitleID"

를 반환합니다. 이 문제가 해결되었습니다. 내가 사용했다 Aggregate.GroupBy (ResTitleOngoing.ResourceTitleIDColumn) 앨런 – ARR01