我有四个表:
表a:项目编码,客户ID,类别ID,D_A,D_B,D_C,D_D
表b:客户ID,客户姓名
表c:类别ID,类别名称
表d:D_A,D_B,D_C,D_D,价格表A超过千万条数据,无主键,a.项目编码可重复
表D的D_A、D_B、D_C、D_D字段共同构成主键
要生成一张表如下:
输出结果要求:项目编码 客户姓名 类别名称 价格
数据库是oracle7.3我写的下面语句输出结果不对,为什么?
Select a.项目编码 , b.客户姓名 , c.类别名称 , d.价格
from a,b,c,d
where
a.项目编码='123456'
and a.客户ID=b.客户ID
and a.类别ID=c.类别ID
and a.D_A=d.D_A and a.D_B=d.D_B and a.D_C=d.D_C and a.D_D=d.D_D
另外:
我用下面语句的输出结果比上面的要少
Select a.项目编码 , b.客户姓名 , c.类别名称 , d.价格
from a where
a.项目编码='123456'用join on无法执行,会不会是oracle7.3不支持?
请高人帮我写一下正确的语句。谢谢
表a:项目编码,客户ID,类别ID,D_A,D_B,D_C,D_D
表b:客户ID,客户姓名
表c:类别ID,类别名称
表d:D_A,D_B,D_C,D_D,价格表A超过千万条数据,无主键,a.项目编码可重复
表D的D_A、D_B、D_C、D_D字段共同构成主键
要生成一张表如下:
输出结果要求:项目编码 客户姓名 类别名称 价格
数据库是oracle7.3我写的下面语句输出结果不对,为什么?
Select a.项目编码 , b.客户姓名 , c.类别名称 , d.价格
from a,b,c,d
where
a.项目编码='123456'
and a.客户ID=b.客户ID
and a.类别ID=c.类别ID
and a.D_A=d.D_A and a.D_B=d.D_B and a.D_C=d.D_C and a.D_D=d.D_D
另外:
我用下面语句的输出结果比上面的要少
Select a.项目编码 , b.客户姓名 , c.类别名称 , d.价格
from a where
a.项目编码='123456'用join on无法执行,会不会是oracle7.3不支持?
请高人帮我写一下正确的语句。谢谢
早期版本一些功能没有,用新版本的功能实现的话,说了也白说
from (select distinct * from a)a,b,c,d
where
a.项目编码='123456'
and a.客户ID=b.客户ID
and a.类别ID=c.类别ID
and a.D_A=d.D_A and a.D_B=d.D_B and a.D_C=d.D_C and a.D_D=d.D_D 看看查询结果是否达到你的要求?
项目编码,客户ID,类别ID,D_A,D_B,D_C,D_D
123456 1 2 AA BB CC DD
123456 2 6 AA CC EE FF
123456 1 8 WW HH KK LL
123456 6 9 SA FA TR BH
123456 3 3 BV ER TR TE
......
......
要生成一张表如下: 项目编码 客户姓名 类别名称 价格
123456 张三 分类一 100.00
123456 李四 分类二 90.00
123456 张三 分类三 20.00
123456 赵六 分类五 60.00
表b:客户ID
表c:类别ID
你看看能不能建一个视图,将 项目编码 客户姓名 类别名称 价格 选出来
这样你就相当于在一张表里面查了
我认为是比较方便!