请问这两个表之间如何关联取部门人数?

A表部门名字,但是个别部门是存在合并现象的,例如部门 8100,8125,8154是要合并成一个大部门来统计。

B表是系统表,记录了过往每一天每个部门的人员信息明细表。(每天存一条数据)

希望在指定时间段查询时,可以取到各部门的人数合计。

比如用户在选择2021年2月时,选择“东安店”时,查询结果是B表的20210201-20210228日,8100+8125+8154的部门人数。

FineReport rbk333 发布于 2021-3-2 10:20
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
krystal033Lv7高级互助
发布于2021-3-2 10:22
left join  和 count了解一下

最佳回答
0
用户E2976026Lv5见习互助
发布于2021-3-2 11:12

SELECT B.人数

FROM

(SELECT MM,ZICZG0010,COUNT(RPA_EI0) 人数

(SELECT DISTINCT LEFT(CALDAY,6) MM,RPA_EI0,ZICZG0010

FROM B表) B

GROUP BY MM,ZICZG0010) B 

LEFT JOIN A表 A ON A.NY=CONCAT(LEFT(B.MM,4),'-',RIGHT(B.MM,2))

AND A.BMZH=B.ZICZG0010

WHERE A.NY='${month}'

AND A.BMZHMS='${dian}'

  • rbk333 rbk333(提问者) 抱歉刚看到 。报错,运行时报语法错误:: sql syntax error: incorrect syntax near \"(\": line 7 col 1 (at pos 77)
    2021-03-02 14:41 
  • 用户E2976026 用户E2976026 回复 rbk333(提问者) 可能需要断点去测一下,晚点我帮你看一下
    2021-03-02 16:00 
  • rbk333 rbk333(提问者) 回复 用户E2976026 时间关联那里有问题。 我是这么写的,少套了1层 SELECT * FROM (SELECT DISTINCT CALDAY,COUNT(EMPLOYEE),ZICZG0010 FROM \"_SYS_BIC\".\"CB.BL.YW/ZBL_ZDEYG001\" GROUP BY CALDAY,ZICZG0010) B RIGHT JOIN \"_SYS_BIC\".\"ZBMJJB_BM\" A ON A.BMZH=B.ZICZG0010 --AND A.NY=CONCAT(LEFT(B.CALDAY,4),\'-\',RIGHT(B.CAKDAY,2)) (这行注释掉可以正常查询到) WHERE A.BMZHMS=\'东安店\'
    2021-03-02 16:06 
  • 用户E2976026 用户E2976026 回复 rbk333(提问者) 那现在解决了是吗
    2021-03-02 18:42 
  • rbk333 rbk333(提问者) 回复 用户E2976026 没啊、、、、不加日期能查到,加了查不到。。。
    2021-03-02 22:16 
  • 3关注人数
  • 325浏览人数
  • 最后回答于:2021-3-2 11:12
    请选择关闭问题的原因
    确定 取消
    返回顶部