下面是Oracle 数据库查询中出现的问题,不明白这是怎么回事?各位大虾帮帮忙,谢谢了!!!!!!!!

cqxhhe 2001-12-03 04:17:57
下面是Oracle 数据库查询
EPD_ITEM_MASTER 表中有 item_code\stock_unit 等字段,item_code 为主键
现有 ITEM_CODE='21110061000001'的纪录
第一 第二 SELECT 语句查询结果如下:
--****************************************************************************************************
SQL> SELECT ITEM_NAME FROM EPD_ITEM_MASTER BB WHERE BB.ITEM_CODE='21110061000001';

ITEM_NAME
------------------------------
190mm环形平盘
--****************************************************************************************************

SQL> SELECT STOCK_UNIT FROM EPD_ITEM_MASTER CC WHERE CC.ITEM_CODE='21110061000001';

STOCK_UNIT
----------
jian
--****************************************************************************************************
但是在另外一个 SELECT 查询中 item_code 作为外键 却找不到 纪录;
说明 ORD_PLAN 表中有item_code
第一个查询中:
结果如下:ORD_PLAN 中有记录,结果却显示“未选定行“;
第二个查询中:ORD_PLAN 中记录显示出来,但 EPD_ITEM_MASTER 表中相关的 item_code\stock_unit 字段 却显是不出来
而且这个查询的效率很低
--****************************************************************************************************
SQL> SELECT
2 AA.NUM,
3 AA.ITEM_CODE,
4 BB.ITEM_NAME,
5 BB.STOCK_UNIT,
6 AA.PRICE,
7 AA.ON_HAND_QTY,
8 AA.REQUIRE_QTY,
9 AA.PLAN_QTY,
10 AA.PRICE*AA.PLAN_QTY AS AMT
11 FROM ORD_PLAN AA,EPD_ITEM_MASTER BB
12 WHERE BB.ITEM_CODE=AA.ITEM_CODE;

未选定行
--****************************************************************************************************
SQL> SELECT
2 AA.NUM,
3 AA.ITEM_CODE,
4 (SELECT ITEM_NAME FROM EPD_ITEM_MASTER BB WHERE BB.ITEM_CODE=AA.ITEM_CODE) AS ITEM_NAME,
5 (SELECT STOCK_UNIT FROM EPD_ITEM_MASTER CC WHERE CC.ITEM_CODE=AA.ITEM_CODE) AS STOCK_UNIT,
6 AA.PRICE,
7 AA.ON_HAND_QTY,
8 AA.REQUIRE_QTY,
9 AA.PLAN_QTY,
10 AA.PRICE*AA.plan_qty AS AMT
11 FROM ORD_PLAN AA;

NUM ITEM_CODE ITEM_NAME STOCK_UNIT
---------- ------------------------- ------------------------------ ----------
PRICE ON_HAND_QTY REQUIRE_QTY PLAN_QTY AMT
---------- ----------- ----------- ---------- ----------
0 21110061000001
45 0 0 3 135

--****************************************************************************************************
^ ^
这是怎么回事?各位大虾帮帮忙,谢谢了,
...全文
129 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cqxhhe 2001-12-03
  • 打赏
  • 举报
回复
KingSunSha(弱水三千) 多谢你啊 呵呵
cqxhhe 2001-12-03
  • 打赏
  • 举报
回复
知道了 是epd_item_master 中 item_code 定已成了 char
这个表不是我负责的

谢谢大家 加分!
KingSunSha 2001-12-03
  • 打赏
  • 举报
回复
看不出什么错误的地方,你DESC EPD_ITEM_MASTER贴出来看看
cqxhhe 2001-12-03
  • 打赏
  • 举报
回复
SQL> select * from ord_plan;

NUM PLAN_NO CAUSE_CO CAUSE_NAME
---------- -------- -------- ------------------------------
ITEM_CODE PRICE ON_HAND_QTY REQUIRE_QTY PLAN_QTY
------------------------- ---------- ----------- ----------- ----------
0 P0010001 0001
21110061000001 45 0 0 3
cqxhhe 2001-12-03
  • 打赏
  • 举报
回复
SQL> desc ord_plan
名称 空? 类型
----------------------------------------- -------- ----------------------------
NUM NOT NULL NUMBER(9)
PLAN_NO NOT NULL VARCHAR2(8)
CAUSE_CODE NOT NULL VARCHAR2(8)
CAUSE_NAME VARCHAR2(30)
ITEM_CODE NOT NULL VARCHAR2(25)
PRICE NUMBER(9)
ON_HAND_QTY NUMBER(9)
REQUIRE_QTY NUMBER(9)
PLAN_QTY NUMBER(9)
cqxhhe 2001-12-03
  • 打赏
  • 举报
回复
SQL> SELECT ITEM_CODE FROM ORD_PLAN WHERE ITEM_CODE='21110061000001';

ITEM_CODE
-------------------------
21110061000001
xuejl 2001-12-03
  • 打赏
  • 举报
回复
ORD_PLAN 表里有值吗?
KingSunSha 2001-12-03
  • 打赏
  • 举报
回复
ITEM_CODE有问题,大概ORD_PLAN里的ITEM_CODE是CHAR类型的,'21110061000001'后面有一串空格.
你运行一下SELECT ITEM_CODE FROM ORD_PLAN WHERE ITEM_CODE='21110061000001';看看什么结果
cqxhhe 2001-12-03
  • 打赏
  • 举报
回复
大家快来看看阿 急用 给高分 阿
cqxhhe 2001-12-03
  • 打赏
  • 举报
回复
大家看看阿

KingSunSha(弱水三千) ,你是高手,给兄弟看看 呵呵

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧