table:id      uid      p
1        1       100
2        1       200
3        2       600
4        1       500
写一个查询语句,根据uid查询他的sum(p),如果存在则返回这个uid,否则返回空大概是这个意思,不知道对不对.
select uid form table where uid=1 and sum(p)>800

解决方案 »

  1.   

    select uid from tt group by uid having sum(p)>800
      

  2.   

    select uid form table where uid=1 
    having sum(p)>800
    聚集函数,只能在having 中
      

  3.   

    多谢帮助.ACMAIN_CHM的方式比较合适select uid form table where uid=1 having sum(p)>800可以适用单条查询
    select uid form table where uid=1 and p>100提取一下
    String sql="select uid form table where"+kv在封装到一个方法里,这样单次和累计的都可以查了
    public boolean checkP(String kv)
    {
      boolean b=false;
      String sql="select uid form table where"+kv
      //判断查询是否为空.赋值给b
      return b;
    }
      

  4.   

    借贵宝地问一个简单问题MYSQL在注释的时候
    /* 和/*!
    有什么区别??显示出来的,/* ...*/是灰色的
    /*!...*/是绿色的。都是起到同样的注释效果吧?
      

  5.   

    测试结果select 1 /*!asasdas*/ + 2
    执行失败select 1 /*asasdas*/ + 2
    执行成功啥原因??
      

  6.   

    /* ! 是为了SQL语句的兼容。
    这样在MYSQL中会执行 /* ! 中的语句,但其它数据库比如ORACEL就不执行。方便你的语句移植。/*! MySQL-specific code */In this case, MySQL Server parses and executes the code within the comment as it would any other SQL statement, but other SQL servers will ignore the extensions. For example, MySQL Server recognizes the STRAIGHT_JOIN keyword in the following statement, but other servers will not: SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...
      

  7.   


    # MySQL-Front 5.1  (Build 3.73)/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE */;
    /*!40101 SET SQL_MODE='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES */;
    /*!40103 SET SQL_NOTES='ON' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS */;
    /*!40014 SET UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS */;
    /*!40014 SET FOREIGN_KEY_CHECKS=0 */;
    # Host: localhost    Database: yxcrm
    # ------------------------------------------------------
    # Server version 5.0.18-ntUSE `db5`;#
    # Source for table sys_dictionary
    #DROP TABLE IF EXISTS `sys_dictionary`;
    CREATE TABLE `sys_dictionary` (
      `SYS_DICTIONARY_ID` int(8) NOT NULL,
      `NAME` varchar(50) default NULL,
      `REMARKS` varchar(1000) default NULL,
      `PARENT_ID` int(8) default NULL,
      `SORT` int(8) default NULL,
      `ISFLAG` char(1) default NULL,
      `SIGN` varchar(50) default NULL,
      `SYS_VALUE` varchar(50) default '',
      PRIMARY KEY  (`SYS_DICTIONARY_ID`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;#
    # Dumping data for table sys_dictionary
    #LOCK TABLES `sys_dictionary` WRITE;
    /*!40000 ALTER TABLE `sys_dictionary` DISABLE KEYS */;
    INSERT INTO `sys_dictionary` VALUES (1,'测试类型','系统测试',NULL,NULL,'Y','cslx','');
    INSERT INTO `sys_dictionary` VALUES (2,'ping测试',NULL,1,1,'Y','','');
    /*!40000 ALTER TABLE `sys_dictionary` ENABLE KEYS */;
    UNLOCK TABLES;/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
    /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
    /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
    /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;你看PD生成的SQL语句,完全可以直接执行,也没报错。。里面就有带!的,注释。可以帮我解释下吗?