聚合不应出现在 WHERE 子句中,除非该聚合位于 HAVING 子句或选择列表所包含的子查询中,并且要对其进行聚合的列是外部引用。
select  top 10 a.Id,a.Title,a.PostDate,b.Title as ColumnName from Xk_Article a Left Join Xk_Column b On a.ColumnId = b.Id where a.Id>(select max(a.Id) from (select  top 10 a.Id from Xk_Article a Left Join Xk_Column b On a.ColumnId = b.Id order by a.Id  DESC  ) AS TBMinID) order by a.Id  DESC

解决方案 »

  1.   

    select top 10 a.Id,a.Title,a.PostDate,b.Title as ColumnName 
    from Xk_Article a Left Join Xk_Column b 
    On a.ColumnId = b.Id 
    where a.Id>(select max(Id) 
      from (select top 10 t1.Id 
        from Xk_Article t1 Left Join Xk_Column t2 
        On t1.ColumnId = t2.Id order by t1.Id DESC )) 
    order by a.Id DESC
    看一看以上语句。
      

  2.   

    --try
    select top 10 a.Id,a.Title,a.PostDate,b.Title as ColumnName 
    from Xk_Article a 
    Left Join Xk_Column b On a.ColumnId = b.Id 
    where a.Id > (
    select max(a.Id) Id 
    from Xk_Article a 
    Left Join Xk_Column b On a.ColumnId = b.Id 
    --order by a.Id DESC --为默认排序不需要添加

    order by a.Id DESC
    --不过应该是没有结果

    因分析业务逻辑的实现存在问题,建议将数据和期望结果贴出。
      

  3.   

    SELECT TOP 10 a.Id, a.Title, a.PostDate, b.Title AS ColumnName 
    FROM Xk_Article a
    LEFT JOIN Xk_Column b
    ON  a.ColumnId = b.Id
    WHERE a.Id>(
              SELECT MAX(Id) 
              FROM (
                       SELECT TOP 10 a.Id 
                       FROM Xk_Article a
                        LEFT JOIN Xk_Column b
                        ON  a.ColumnId = b.Id
                       ORDER BY a.Id DESC
                   ) AS TBMinID
          )
    ORDER BY a.Id DESC
      

  4.   

    聚合要加在GROUP BY 后面的HAVING条件