关于筛选条件,显示问题

A表,商户信息表,比如一共有100家。(其中80家在经营的,有20家撤铺了)

B表,销售数据表,70家商铺。

现在做了一张销售统计表,专柜信息B表去关联的A表,销售金额大于0这样显示的。这样的结果就显示了70家的商铺信息,另外10家没有销售的没显示出来。

怎么把这80家都显示出来,又能查历史数据。

我自己的想法:把A表加个字段,是否在经营Y/N,这样的话,当前的问题能解决,但是如果要查之前月份已经撤铺的就查不出来了,这有什么办法解决,或变通的办法。

FineReport ysbin 发布于 2023-2-7 10:27
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
给我一瓶乳酸菌Lv4见习互助
发布于2023-2-7 11:38(编辑于 2023-2-7 11:38)

SELECT A.*,B.* FROM A left join b on ON A表.商户=B表.商户 where 1=1 and B.日期字段 = ${date} and A.在营状态='Y'

逻辑就是这样,字段可以只展示自己想要的那几个

  • ysbin ysbin(提问者) 这样我时间段设为去年的就查不出来了,比如去年在经营,现在状态已经是撤铺的这些。
    2023-02-07 11:40 
  • 给我一瓶乳酸菌 给我一瓶乳酸菌 回复 ysbin(提问者) 可以把状态也设为参数,可供筛选,默认是在营商铺
    2023-02-07 13:14 
  • 给我一瓶乳酸菌 给我一瓶乳酸菌 回复 ysbin(提问者) 在营状态参数,不选就让两种状态都展示,选就展示选的那一种,${if(len(状态参数名)=0,\'\',\"and A.在营状态=\"+状态参数名)}
    2023-02-07 13:19 
  • ysbin ysbin(提问者) 回复 给我一瓶乳酸菌 这是一种思路,感谢。
    2023-02-07 14:51 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-2-7 10:30(编辑于 2023-2-7 11:17)

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 且不为空

  • ysbin ysbin(提问者) 这样的话,如果1月份在经营,2月份撤铺了,那我现在2月份,查1月份的是不是就查不出来了
    2023-02-07 10:32 
  • Z4u3z1 Z4u3z1 回复 ysbin(提问者) 改了 改成inner join 没要where
    2023-02-07 10:34 
  • ysbin ysbin(提问者) 回复 Z4u3z1 这样只能显示有销售的70家商户吧。需求是把80家都查出来,没有销售的10家也出来。 如果去年有经营过,现在状态是撤柜状态了,我要查询历史数据也能查出来。
    2023-02-07 10:48 
  • Z4u3z1 Z4u3z1 回复 ysbin(提问者) 也就是你想有销售就展示? SELECT * FROM A表 right JOIN B表 ON A表.商户=B表.商户
    2023-02-07 10:58 
  • ysbin ysbin(提问者) 回复 Z4u3z1 不是,可能我没描述明白。需求有2点。第一,查当前的话,要把所有经营状态是在营的能查出来,比有100家其中80家在营,70家有销售,我要显示80家。 第二。我时间段查以前的话,要把历史有销售的,现在可能状态已经撤铺的,也查出来。
    2023-02-07 11:11 
最佳回答
0
HYLv4见习互助
发布于2023-2-7 10:45

1、当前在经营的店铺无论在查询月份有没有数据都要显示

2、在查询月份有销售数据的店铺,无论当前是否经营都要显示

如果是这两个需求的话,可以按这两个逻辑写两段sql再合并去重

  • ysbin ysbin(提问者) 感谢,你应该看明白了。但是应该不是就合并能解决的。因为时间段是可选的
    2023-02-07 11:42 
  • 3关注人数
  • 251浏览人数
  • 最后回答于:2023-2-7 11:38
    请选择关闭问题的原因
    确定 取消
    返回顶部