Mysql-如何检查特定查询不返回任何结果

时间:2014-12-27 03:43:19

标签: mysql

我有用户交易表。需要基于日期明智的综合报告。查询可以像

select sum(a),count(b),c from u_txn where Date(date) between('2014-12-01') 
and ('2014-12-25') group by Date(date);

难的是如果事务没有发生在任何一个日期,我可以将我的列值设为0.是否可以没有for循环和存储过程? 改进了格式

1 个答案:

答案 0 :(得分:0)

是的,您可以动态构建日期表such as in another post I clarified in more detail。但是,这里只包含您的查询实现。我只是使用你的“u_txn”表作为获取25天记录的基础(在其他答案中澄清)。由于内部查询生成日期12月1日到12月25日,因此您不需要日期范围的额外where子句,因为它基于左连接到事务详细信息表。

select
      AllDaysYouWant.MyJoinDate,
      sum(T.a),
      count(T.b),
      c 
   from 
      ( select
              @curDate := Date_Add(@curDate, interval 1 day) as MyJoinDate
           from
              ( select @curDate := '2014-12-01' ) sqlvars,
              u_txn
           limit 25 ) AllDaysYouWant
      LEFT JOIN u_txn T
         on AllDaysYouWant.MyJoinDate = Date( T.Date )
   group by
      AllDaysYouWant.MyJoinDate