日期:2014-05-19  浏览次数:20562 次

这个查询语句应该怎么写?
做一个查询页面,是名称查询。              
  string   sql   =   "select   count(*)   as   count   ,id,   mc,   unit_name,unit_organ,   convert(char(10),build_date,120)   as   build_date   from   cases   where   mc   like   '% "   +   mc   +   "% '   ";
为什么老是提示
列   'cases.mc '   在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在   GROUP   BY   子句中。
列   'cases.unit_name '   在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在   GROUP   BY   子句中。
列   'cases.unit_organ '   在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在   GROUP   BY   子句中。
列   'cases.build_date '   在选择列表中无效,因为该列既不包含在聚合函数中,也不包含在   GROUP   BY   子句中。


------解决方案--------------------
string sql = "select count(*) as count ,id, mc, unit_name,unit_organ, convert(char(10),build_date,120) as build_date from cases where mc like '% " + mc + "% '
group by id,mc,unit_name,unit_organ, convert(char(10),build_date,120) ";

------解决方案--------------------
这条SQL语句用了聚合函数cuont,所以在where语句后面需要加group by 语句。
正确的如下:
string sql = "select count(*) as count ,id, mc, unit_name,unit_organ, convert(char(10),build_date,120) as build_date from cases where mc like '% " + mc + "% ' group by id, mc, unit_name,unit_organ,build_date ";
------解决方案--------------------
錯誤提示已經說明瞭錯誤的原因了
------解决方案--------------------
聚合函数cuont是分组统计函数,所以要同时用group by 进行分组.

paoluo(一天到晚游泳的鱼) 答案却可