2009-07-25 2 views
0

У меня есть SUM 3 Columns и возвращает значение в моем результате. Каков правильный способ написать это?Как написать инструкцию для выбора SubSonic, которая суммирует три столбца?

SubSonic.SqlQuery qs =new SubSonic.Select() 
.From(Table.ViewAllratingsGlo.Schema.TableName); 

SubSonic.Aggregate ag = SubSonic.Aggregate.Sum(("Column1+Column2+Column3), "Score"); 
qs.Aggregates.Add(ag); 

string SqlResult = qs.BuildSqlStatement(); 

В SqlResult я просто вижу агрегатных запросов, как

Select SUM("Column1+Column2+Column3) As 'Score' 

Но мне нужны другие поля из моего стола тоже.

ответ

1

В этом виде запросов все столбцы в вашем элементе select должны быть агрегированными объектами, просто измените тип агрегата на группу вместо суммы.

SubSonic.SqlQuery qs = new Select(
    new SubSonic.Aggregate("column1+column2+column3", "Score", AggregateFunction.Sum), //the original 
    new SubSonic.Aggregate(TableName.Column4, AggregateFunction.GroupBy), //another column 
    new SubSonic.Aggregate(TableName.Column5, AggregateFunction.GroupBy) //another column 
) 
.From(Table.ViewAllratingsGlo.Schema.TableName);