A表,商户信息表,比如一共有100家。(其中80家在经营的,有20家撤铺了)
B表,销售数据表,70家商铺。
现在做了一张销售统计表,专柜信息B表去关联的A表,销售金额大于0这样显示的。这样的结果就显示了70家的商铺信息,另外10家没有销售的没显示出来。
怎么把这80家都显示出来,又能查历史数据。
我自己的想法:把A表加个字段,是否在经营Y/N,这样的话,当前的问题能解决,但是如果要查之前月份已经撤铺的就查不出来了,这有什么办法解决,或变通的办法。
SELECT A.*,B.* FROM A left join b on ON A表.商户=B表.商户 where 1=1 and B.日期字段 = ${date} and A.在营状态='Y'
逻辑就是这样,字段可以只展示自己想要的那几个
SELECT * FROM A表 INNER JOIN B表 ON A表.商户=B表.商户
-------------------
SELECT * FROM A表 ${IF(日期控件==TODAY(),"LEFT","INNER")} JOIN B表 ON A表.商户=B表.商户 where 1=1 ${IF(日期控件==TODAY()," and 在营状态='Y'","")}
注意:日期控件的公式要和today()格式一致:yyyy-MM-dd 且不为空
1、当前在经营的店铺无论在查询月份有没有数据都要显示
2、在查询月份有销售数据的店铺,无论当前是否经营都要显示
如果是这两个需求的话,可以按这两个逻辑写两段sql再合并去重