欢迎各位大牛指教

查询区间返回时间列表及所需数据无数据则返回0

说实话这个东西搞了整整一个下午,差点崩溃了,真心好累的,网上一点资料都没有,各种回答都是牛头不对马嘴,基本上都是让去加一张时间表联查效率低还白占内存:这中间想到好多解决方法大多被自己直接PASS了不实用还麻烦,总结下两种比较简单的吧,第一种找个数据多的表多层嵌套联查搞定许多人都这么用的但是有缺陷,不多说,第二种就是今天写的:

SELECT date_format(t2.days,'%d') AS time,COALESCE(t3.ssdate,0) as sum FROM (SELECT @cdate := date_add(@cdate,interval 1 day) days from   
        (SELECT @cdate := CURDATE() from sfb_company limit 7) t1) t2
left join (select sum(invoiceamt) as ssdate,invoiceduedate from sfb_company_pay where cid=562 GROUP BY invoiceduedate) t3 on t2.days=t3.invoiceduedate

其实也用到别的表了但是比起单纯的多层简直简单了无数倍,而且效率极大提高代码也比较简洁,分享下

posted @ 2017-05-12 16:11  夏沫秋至  阅读(306)  评论(0编辑  收藏  举报