我正在创建一个查询,用于标识给定ID的上一个和后一个记录。我有以下代码:
@(Html.Kendo().Grid<...>()
.Columns(columns =>
{
columns.Bound(j => j.Type);
columns.Bound(j => j.Code);
})
.Sortable(s => s.Enabled(true))
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(20)
.Sort(p => { p.Add("Code").Ascending(); p.Add("Type").Ascending(); })
.Model(model => model.Id(j => j.ID))
.Read(...)
.ServerOperation(true)
)
)
但是上面的代码会抛出错误说:
[语义错误]第0行,第138行附近&#39;,(SELECT MAX(t2.id)&#39;:错误:类&#39;,&#39;未定义。
为什么会这样?
感谢。
答案 0 :(得分:0)
我认为您的问题是使用min
和max
作为别名。我使用它时遇到了同样的错误,但更改别名工作正常。我想你也可以将你的逻辑简化为一个queryBuilder
$queryBuilder = $this->createQueryBuilder('story');
$queryBuilder
->select('MAX(story.id) AS max_id')
->addSelect('MIN(story.id) AS min_id')
->where('story.id > :id')
->setParameter('id', 1);
return $queryBuilder->getQuery()->getScalarResult();
返回:
[
{
"max_id": "17",
"min_id": "16"
}
]