标题:左连接查询获取不到右表的数据。
取消只看楼主
kinvanhon
Rank: 5Rank: 5
来 自:战争学院
等 级:贵宾
威 望:16
帖 子:99
专家分:258
注 册:2014-10-7
结帖率:100%
已结贴  问题点数:20 回复次数:4 
左连接查询获取不到右表的数据。
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
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
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
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-437830-1-1.html




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

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