| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 917 人关注过本帖
标题:左连接查询获取不到右表的数据。
只看楼主 加入收藏
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
左连接查询获取不到右表的数据。
SELECT Mseg.mblnr, Mseg.matnr, Mseg.werks, Mseg.lgort, Mseg.waers,;
  Mseg.menge, Mseg.meins, Mkpf.budat;
 FROM ;
     mseg ;
    LEFT OUTER JOIN mkpf ;
   ON  Mseg.mblnr = Mkpf.mblnr;
 WHERE  Mseg.shkzg = ( "S" );
 ORDER BY Mseg.matnr, Mseg.werks, Mseg.lgort
我想要做的是通过Mseg.mblnr=Mkpf.budat关联,查询出所有Mseg表内的值和对应的Mkpf表中的budat(date型)。但是运行上面的语句,Mkpf.budat的值全部是.NULL,不知道是没检索mkpf表还是什么情况,关联条件是满足的。
2014-10-29 08:41
五毒外星人
Rank: 2
等 级:论坛游民
威 望:1
帖 子:59
专家分:87
注 册:2014-5-7
收藏
得分:0 
左连接的格式是:select 要查询的字段 from 表1 left join 表2 on 表1.编号=表2.编号 where 条件表达式。

虚心学习,不断进步!
2014-10-29 09:16
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27237
注 册:2012-2-5
收藏
得分:0 
Mkpf.budat原本就无值,可以用NVL()置空
上传表

[ 本帖最后由 sdta 于 2014-10-29 09:22 编辑 ]

坚守VFP最后的阵地
2014-10-29 09:20
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
以下是引用sdta在2014-10-29 09:20:57的发言:

Mkpf.budat原本就无值,可以用NVL()置空
上传表

有值的,附件已上传
mseg&mkpf.rar (3.15 KB)
2014-10-29 09:26
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
回复 2 楼 五毒外星人
我的格式好像是这样的吧
2014-10-29 09:30
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27237
注 册:2012-2-5
收藏
得分:20 
SELECT Mseg.mblnr, Mseg.matnr, Mseg.werks, Mseg.lgort, Mseg.waers,;
  Mseg.menge, Mseg.meins, Mkpf.budat;
FROM ;
     mseg ;
    LEFT OUTER JOIN mkpf ;
   ON  Alltrim(Mseg.mblnr) = Alltrim(Mkpf.mblnr);
WHERE  Alltrim(Mseg.shkzg) = "S";
ORDER BY Mseg.matnr, Mseg.werks, Mseg.lgort

问题:两表mblnr字段中
1.值的实际长度不等
2.开头字符空格不相等
("S")改为"S"

坚守VFP最后的阵地
2014-10-29 10:23
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27237
注 册:2012-2-5
收藏
得分:0 
以后提问题,如果与数据表文件有关,最好上传相关数据表文件,否则是看不出问题所在的。

坚守VFP最后的阵地
2014-10-29 10:25
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
以下是引用sdta在2014-10-29 10:23:28的发言:

SELECT Mseg.mblnr, Mseg.matnr, Mseg.werks, Mseg.lgort, Mseg.waers,;
  Mseg.menge, Mseg.meins, Mkpf.budat;
FROM ;
     mseg ;
    LEFT OUTER JOIN mkpf ;
   ON  Alltrim(Mseg.mblnr) = Alltrim(Mkpf.mblnr);
WHERE  Alltrim(Mseg.shkzg) = "S";
ORDER BY Mseg.matnr, Mseg.werks, Mseg.lgort

问题:两表mblnr字段中
1.值的实际长度不等
2.开头字符空格不相等
("S")改为"S"

多谢版主~~空格我确实没想到,但是值的实际长度不等我没发现,两张表的mblnr字段都是10位呀
2014-10-29 10:48
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9848
专家分:27237
注 册:2012-2-5
收藏
得分:0 
以下是引用kinvanhon在2014-10-29 10:48:46的发言:


多谢版主~~空格我确实没想到,但是值的实际长度不等我没发现,两张表的mblnr字段都是10位呀

实际长度与字段长度是两回事
 4902159097 与   49021590

坚守VFP最后的阵地
2014-10-29 12:41
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
收藏
得分:0 
以下是引用sdta在2014-10-29 12:41:46的发言:


实际长度与字段长度是两回事
 4902159097 与   49021590

应该是VFP显示的问题吧,虽然一个显示10位一个显示8位,还是能运行。之前出现的问题就是空格造成的吧。
图片附件: 游客没有浏览图片的权限,请 登录注册
2014-10-29 13:13
快速回复:左连接查询获取不到右表的数据。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.109725 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved