SQLJOIN命令的问题

有两个表,表一如图:

image.png

表二如图:

image.png

表一的“销售凭证”( VBAP~VBELN )和表二的“参照”( BSID~XBLNR )字段就是两个表共同的关键字,但表一 的“销售凭证” 前面多了“00”两个字符,使用JOIN语句如何处理?也就是下面语句红色的部份应该怎么处理?

LEFT  JOIN BSID ON VBAP~VBELN = BSID~XBLNR


根据网友luojian0323的指导,命令改为以下还是不行:LEFT  JOIN BSID ON VBAP~VBELN = CONCAT("00",BSID~XBLNR)

image.png


image.png

lsq100post 发布于 2020-6-26 16:46 (编辑于 2020-6-28 16:48)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
luojian0323Lv7资深互助
发布于2020-6-27 10:51(编辑于 2020-6-27 19:53)
SELECT a.* FROM VBAP as a
LEFT JOIN BSID as b
ON a.VBELN =CONCAT("00",b.XBLNR)


最佳回答
0
fish19880902Lv4初级互助
发布于2020-6-28 08:28

where 条件先不写。

看看   CONCAT("00",BSID~XBLNR) 这个值显示的是什么

  • lsq100post lsq100post(提问者) 我这个是SAP数据集,没办法像SQL那样调试
    2020-06-28 10:39 
  • fish19880902 fish19880902 回复 lsq100post(提问者) 直接FROM BSID 上面 select CONCAT(\"00\",BSID~XBLNR) 放这个怎么会不能查数据?
    2020-06-28 15:11 
  • lsq100post lsq100post(提问者) 回复 fish19880902 SAP数据集不能像SQL语句那样灵活的写,都有特定的格式。但我在设计器里测试CONCAT这个公式,确实是在前面加了两个0,但在数据集里却是无效
    2020-06-28 16:18 
  • fish19880902 fish19880902 回复 lsq100post(提问者) 那就是不能用 concat ,直接用 \'00\'+BSID~XBLNR 试试 或者用 \'00\'||BSID~XBLNR . 多试下。应该只是语法有差异而已
    2020-06-28 16:31 
  • fish19880902 fish19880902 回复 lsq100post(提问者) 新建一个数据集 select CONCAT(\"00\",BSID~XBLNR) FROM BSID 看看有没有值显示。如果不对,用其他的语法多试下。
    2020-06-28 16:37 
最佳回答
0
圣体叶小凡Lv6高级互助
发布于2021-1-9 12:52

spa数据集没有用过,但是如果这样join不行,你可以试一试把字段补冲好“00”,然后在页面上用过滤来实现效果呢

  • 4关注人数
  • 618浏览人数
  • 最后回答于:2021-1-9 12:52
    请选择关闭问题的原因
    确定 取消
    返回顶部