sSQL.Format("SELECT 规则编号,count(规则编号)as total FROM ifrules where 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' group by 规则编号 order by total",m_str1,m_str2,m_str3,m_str4); 
规则编号是数据表的一个字段 我的意思是先找出符合where条件的记录,然后按照规则编号出现的频率来排序显示

解决方案 »

  1.   

    SELECT 规则编号,count(规则编号)as total FROM ifrules where 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' group by 规则编号 order by total desc
      

  2.   

    这个语句有问题吗
    SELECT 规则编号,COUNT(规则编号)as total FROM ifrules where 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' group by 规则编号 order by total
      

  3.   

    参数传的没错 SELECT * FROM ifrules where 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' ,m_str1,m_str2,m_str3,m_str4.m_str分别是4个变量,已赋值,这个可以通过
    关键就是加上group by 后和where用在一起会产生冲突 不知如何解决 请大虾帮忙
      

  4.   

    SELECT * FROM ifrules where 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' order by 规则编号,m_str1,m_str2,m_str3,m_str4.m_str
     加上order by也可以 那么就是group by的问题了
      

  5.   

    select a,count(*)
    from tb
    where ...
    group by a  语法是对的,没有问题
      

  6.   

    先找出符合where条件的记录,然后按照规则编号出现的频率来排序显示 我这个思路您认为按照这样写有问题吗
      

  7.   

    没有。count(规则编号)---> count(*)
    select a,count(*) as pl
    from tb
    where ...
    group by a 
    order by pl desc 
      

  8.   

    是的。我试了 改成这样:
    sSQL.Format("SELECT 规则编号,count(*) as total FROM ifrules WHERE 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' group by 规则编号 order by total desc",m_str1,m_str2,m_str3,m_str4); 
    还是有错误
      

  9.   

    那估计就不是sql里的错误,应该是你前台的问题了
      

  10.   

    sSQL.Format("SELECT 规则编号 FROM ifrules WHERE 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' ",m_str1,m_str2,m_str3,m_str4);  
    去掉order和group没有错误可以运行 加上就有错误 那不是这句语句的问题么
      

  11.   

    SELECT 规则编号,COUNT(规则编号)as total FROM ifrules where 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' or 条件值 ='%s' group by 规则编号 order by total