日期:2014-05-20  浏览次数:20504 次

sql语句的问题,大家帮忙看看。
select   title,count(*)   as   c,defaultpicurl   from   PE_article   where   articleid> =122580   and   articleid <=123583   and   deleted <> -2   group   by   title   having   count(*)> 1  
Microsoft   OLE   DB   Provider   for   SQL   Server   错误   '80040e14 '  

列   'PE_article.DefaultPicUrl '   在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在   GROUP   BY   子句中。  

这个要怎么改,,group   by   中不想使用defaultpicurl
但想能读出defaultpicurl这个字段的值。


------解决方案--------------------
这个要怎么改,,group by 中不想使用defaultpicurl 但想能读出defaultpicurl这个字段的值。 ============ 这怎么可能?
------解决方案--------------------
group by 子句中指定的列必须包含在选择列表中
------解决方案--------------------
这么晚了还在写代码,不容易阿。。。
------解决方案--------------------
习惯了.现在早睡都睡不着了.
------解决方案--------------------
select title,count(*) as c,max(defaultpicurl) as defaultpicurl from PE_article where articleid> =122580 and articleid <=123583 and deleted <> -2 group by title having count(*)> 1
------解决方案--------------------
select title,defaultpicurl ,count(*) as c from PE_article where articleid> =122580 and articleid <=123583 and deleted <> -2 group by title having count(*)> 1 order by title,defaultpicurl
------解决方案--------------------
没办法,要不用聚合,要不在group by里,要不就不要用

楼主想下就知道实现不了
如果3条title相同的记录,而defaultpicurl不同,最终group by出一条记录,那这条记录的defaultpicurl值应该取哪个呢?