现在写的sql只能展示有的数据 如果没有的话显示是这样的
方案一,你这个数据库里应该还有个完整的商品信息表吧,你把那个商品信息表和你做的这个月份数据进行笛卡尔积join,即不使用任何条件,即可得到任意商品和任意月份的组合数据,这个时候再用这个数据去left join你的订单数据即可。但是这个缺点是,你商品表里可能有很多垃圾数据,即从未进行过任何交易的商品,这样最后你的数据里就会存在很多无用数据。所以,你还可以尝试用这个订单数据distinct商品出来替代前面说的这个完整商品信息表,但缺点就是查询效率变低了
方案二,如果是8.0以上,可以使用with递归,判断本行没有数据就用上一行的数据(商品名称),但你没写数据库版本,也没给建表和模拟数据的sql,我就不细说了,可以参考下面这个问答,只是"WITH cte_name AS" 要改成"WITH RECURSIVE cte_name AS",和其他数据库相比多了个"RECURSIVE"
你都没数据,只能用默认值代替了,加个条件
本月没有就拿上个月的,依次类推
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!