Foxtable(狐表)用户栏目专家坐堂 → [求助]表join时on里边字段部份为null的情况


  共有6724人关注过本帖树形打印复制链接

主题:[求助]表join时on里边字段部份为null的情况

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/27 11:56:00 [显示全部帖子]

请举例具体表格数据说明。入库表和出库表,"品牌"或 "型号"中部分为空时正确结果应该是怎么样的?
几种情况
1、入库表"品牌"空,"型号"出库"品牌"空"型号"
2、入库表"品牌"不"型号"出库"品牌"空"型号"
3、入库表"品牌""型号"出库"品牌"空"型号"
4、入库表"品牌""型号"出库"品牌""型号"
5、入库表"品牌""型号"出库"品牌"空"型号"
……

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/8/27 16:37:00 [显示全部帖子]

如果都是品牌型号同时为空的情况,则为空的数据单独计算

s elect c.仓库,c.名称,c.品牌,c.型号,c.上月结存,d.本月收进 from (s elect a.仓库,a.名称,a.品牌,a.型号,iif(b.月前出库 is null,a.月前入库,(a.月前入库 - b.月前出库)) as 上月结存 from (s elect 仓库,名称,品牌,型号,sum(金额) as 月前入库 from {入库表} where 日期 < #8/1/2022# group by 仓库,名称,品牌,型号) a  left join (s elect 仓库,名称,品牌,型号,sum(金额) as 月前出库 from {出库表} where 日期 < #8/1/2022# group by 仓库,名称,品牌,型号) b on a.仓库 = b.仓库 And a.名称 = b.名称 And a.品牌 = b.品牌 And a.型号 = b.型号) c left join (s elect 仓库,名称,品牌,型号,sum(金额) As 本月收进 from {入库表} where 日期 >= #8/1/2022# and 日期 <= #8/31/2022# group by 仓库,名称,品牌,型号) d on c.仓库 = d.仓库 And c.名称 = d.名称 And c.品牌 = d.品牌 And c.型号 = d.型号
union
s elect c.仓库,c.名称,c.品牌,c.型号,c.上月结存,d.本月收进 from (s elect a.仓库,a.名称,a.品牌,a.型号,iif(b.月前出库 is null,a.月前入库,(a.月前入库 - b.月前出库)) as 上月结存 from (s elect 仓库,名称,品牌,型号,sum(金额) as 月前入库 from {入库表} where 日期 < #8/1/2022# group by 仓库,名称,品牌,型号) a  left join (s elect 仓库,名称,品牌,型号,sum(金额) as 月前出库 from {出库表} where 日期 < #8/1/2022# group by 仓库,名称,品牌,型号) b on a.仓库 = b.仓库 And a.名称 = b.名称 And a.品牌 is null And a.型号 is null) c left join (s elect 仓库,名称,品牌,型号,sum(金额) As 本月收进 from {入库表} where 日期 >= #8/1/2022# and 日期 <= #8/31/2022# group by 仓库,名称,品牌,型号) d on c.仓库 = d.仓库 And c.名称 = d.名称

 回到顶部