我想实现下面这个功能:
SELECT DONE, (SELECT COUNT(*) FROM TABLE2) AS SUCCESS, CREATETIME
  FROM (SELECT SUM(OFFSET) AS DONE, SYSDATE AS CREATETIME FROM TABLE1)
 问一下,为什么不能这么写?
select sum(offset) as done,
       (select count(*) from table2) as success,
       sysdate as createtime
  from table1

解决方案 »

  1.   

    用了聚集函数sum,就不能在查询其他列如sysdate,否则如何将sum(offset)这个值与多个sysdate的值对应起来?
    select (select sum(offset) from table1) as done,
           (select count(*) from table2) as success,
           sysdate as createtime
    from table1
      

  2.   

    select sum(offset) as done,
           (select count(*) from table2) as success,   ----该处:非单组分组函数
           sysdate as createtime
      from table1
    --要增加分组函数
    group by--考虑子查询不能GROUP BY
      

  3.   

    select sum(offset) as done,
           (select count(*) from table2) as success,
           sysdate as createtime
      from table1
    group by sysdate
      

  4.   


    子查询不能GROUP BY,哦,这样啊,谢谢
      

  5.   

    不是子查询不能group by,而是如一楼所言,你select中包含了sysdate,select中非聚组函数的列,必须出现在group by后面.