日期每天都要

select  from_unixtime(st.pay_time,'%Y-%m-%d') as '支付时间',count(st.tid) '买单总订单数',round(sum(st.total_fee+IFNULL(st.post_fee,0)),2) '买单总销售金额' from systrade_trade st 

LEFT JOIN systrade_order so on  st.tid=so.tid 

LEFT JOIN sysshop_shop sss ON st.shop_id=sss.shop_id where  so.item_id=0 and

st.`status` in ('WAIT_SELLER_SEND_GOODS','WAIT_BUYER_CONFIRM_GOODS','TRADE_FINISHED','TRADE_CLOSED') 

and st.tid in (select tid from systrade_order where title not like '%测试%' )

and from_unixtime(st.pay_time,'%Y-%m-%d')>='2018-11-01'

GROUP BY from_unixtime(st.pay_time,'%Y-%m-%d') desc

image.png我想要的是就算哪天没有订单也要用0 显示出来,请问可不可能实现呢,比如11-10是没有订单的所以没有显示出来,但是我想要用0来表示,请教下大神,

fxm1992 发布于 2018-12-12 13:57
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
zsh331Lv8专家互助
发布于2018-12-12 14:00(编辑于 2018-12-12 15:51)

做一个日期维表~


然后用"结果表"和"日期维表"进行"左关联"~如果对应日期没有订单~值赋值为0



SELECT
a.rq,
    IFNULL(b.买卖总量,0) AS zl,
    IFNULL(b.买卖总额,0) AS zr
FROM
(
SELECT
FROM_UNIXTIME(pay_time, '%Y-%m-%d') AS rq
FROM
systrade_trade
GROUP BY
FROM_UNIXTIME(pay_time, '%Y-%m-%d') DESC
LIMIT 30
) a
LEFT JOIN (这里面放你的SQL语句) b ON a.rq = b.支付时间


  • fxm1992 fxm1992(提问者) 你意思是我做个日期维表放在这里??
    2018-12-12 14:21 
  • zsh331 zsh331 回复 fxm1992(提问者) 对~~
    2018-12-12 14:48 
  • fxm1992 fxm1992(提问者) 回复 zsh331 还是不是特别明白一个,SELECT FROM_UNIXTIME(pay_time,\'%Y\') 年, FROM_UNIXTIME(pay_time,\'%Y-%m\') 月, FROM_UNIXTIME(pay_time,\'%Y-%m-%d\') 日 FROM systrade_trade GROUP BY 日 DESC LIMIT 30我这样写了一个语句保证每个日期都有了,但是两者怎么对比,让没有日期的显示为0 呢
    2018-12-12 15:22 
  • zsh331 zsh331 回复 fxm1992(提问者) 上面粗略写了个脚本参考~
    2018-12-12 15:52 
  • fxm1992 fxm1992(提问者) 回复 zsh331 高手啊,膜拜,问题解决了,但是我还想请教个小问题,我在帆软里调整行高,但是预览的时候行高就是那么宽就是不变,看着好别扭个,大神知道是什么原因吗
    2018-12-12 18:07 
  • 2关注人数
  • 345浏览人数
  • 最后回答于:2018-12-12 15:51
    请选择关闭问题的原因
    确定 取消
    返回顶部