表: cpxxb
字段:id(自动增长),gsmc(公司名称),cpbh(产品编号),oebh(OE编号)
例如:1 甲公司 00001 oe00001
2 甲公司 10001 oe00002
3 甲公司 00001 oe00002
4 乙公司 10001 oe00003
5 乙公司 04004 oe00001
6 乙公司 10001 oe00003
7 丙公司 00001 oe00004
8 丙公司 03001 oe00004
9 丙公司 03001 oe00005
10 丙公司 04501 oe00006
11 丙公司 04501 oe00007
12 丁公司 00001 oe00008
13 丁公司 23001 oe00001
14 丁公司 00001 oe00005
15 戊公司 56001 oe00008
16 戊公司 56001 oe00003
。。说明:cpbh(产品编号)是每个公司自己命名的,可能与别的公司相同但可能不是同一个产品,oebh(OE编号)是每个公司之间通用的,就是一个oebh(OE编号)对应的cpbh(产品编号)可能不同,但是产品是一样的。一个cpbh(产品编号)可能对应多个oebh(OE编号),一个oebh(OE编号)也可能对应多个cpbh(产品编号)。例如:甲公司的产品编号00001对应的是OE编号是oe00001,oe00002,同时 OE编号oe00001对应的甲公司的产品编号00001,也对应的乙公司的产品编号04004和丁公司的产品编号23001,那说明:甲公司的产品编号00001和乙公司的产品编号04004和丁公司的产品编号23001对应的都是同一个产品,那间接与OE编号oe00002,甲公司的产品编号10001,OE编号oe00003,乙公司的产品编号10001,戊公司的产品编号56001,OE编号oe00008,丁公司的产品编号00001,OE编号oe00005,丙公司的产品编号03001 对应的产品都是同一个。我的问题是:当用户输入oebh(OE编号)或cpbh(产品编号) 查询:能显示这个oebh(OE编号)或cpbh(产品编号)对应的产品所对应的所有gsmc(公司名称)及该公对应的cpbh(产品编号),同时显示所有通用的oebh(OE编号)...,如果按一般的做法是:查到与用户输入的oebh(OE编号)相同的所有oebh(OE编号),再通过查到的每个oebh(OE编号)所对应的公司的cpbh(产品编号),再根据每个公司的cpbh(产品编号)对应的oebh(OE编号)查,这就要用到递归算法这样对于几百万条数据效率太慢了,请问各位大虾怎么处理这个数据库???(可以给这个表加字段,也可以增加表)请各位大虾指教。小弟急用。。谢谢!!!!!!!!
字段:id(自动增长),gsmc(公司名称),cpbh(产品编号),oebh(OE编号)
例如:1 甲公司 00001 oe00001
2 甲公司 10001 oe00002
3 甲公司 00001 oe00002
4 乙公司 10001 oe00003
5 乙公司 04004 oe00001
6 乙公司 10001 oe00003
7 丙公司 00001 oe00004
8 丙公司 03001 oe00004
9 丙公司 03001 oe00005
10 丙公司 04501 oe00006
11 丙公司 04501 oe00007
12 丁公司 00001 oe00008
13 丁公司 23001 oe00001
14 丁公司 00001 oe00005
15 戊公司 56001 oe00008
16 戊公司 56001 oe00003
。。说明:cpbh(产品编号)是每个公司自己命名的,可能与别的公司相同但可能不是同一个产品,oebh(OE编号)是每个公司之间通用的,就是一个oebh(OE编号)对应的cpbh(产品编号)可能不同,但是产品是一样的。一个cpbh(产品编号)可能对应多个oebh(OE编号),一个oebh(OE编号)也可能对应多个cpbh(产品编号)。例如:甲公司的产品编号00001对应的是OE编号是oe00001,oe00002,同时 OE编号oe00001对应的甲公司的产品编号00001,也对应的乙公司的产品编号04004和丁公司的产品编号23001,那说明:甲公司的产品编号00001和乙公司的产品编号04004和丁公司的产品编号23001对应的都是同一个产品,那间接与OE编号oe00002,甲公司的产品编号10001,OE编号oe00003,乙公司的产品编号10001,戊公司的产品编号56001,OE编号oe00008,丁公司的产品编号00001,OE编号oe00005,丙公司的产品编号03001 对应的产品都是同一个。我的问题是:当用户输入oebh(OE编号)或cpbh(产品编号) 查询:能显示这个oebh(OE编号)或cpbh(产品编号)对应的产品所对应的所有gsmc(公司名称)及该公对应的cpbh(产品编号),同时显示所有通用的oebh(OE编号)...,如果按一般的做法是:查到与用户输入的oebh(OE编号)相同的所有oebh(OE编号),再通过查到的每个oebh(OE编号)所对应的公司的cpbh(产品编号),再根据每个公司的cpbh(产品编号)对应的oebh(OE编号)查,这就要用到递归算法这样对于几百万条数据效率太慢了,请问各位大虾怎么处理这个数据库???(可以给这个表加字段,也可以增加表)请各位大虾指教。小弟急用。。谢谢!!!!!!!!
解决方案 »
- 多字段关联求最大,最小,平均值
- SQL Server 2005中的T-SQL增强
- 请教一条查询一句~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- SQL返回值与输出问题,请帮忙!
- 求一SQL语句,请大家看看!
- 关与列的类型一个问题,,请高手指教!!
- 急!数据库分离失败,数据库被删除,日志文件被删,只剩一个.mdf文件,高手如何恢复数据库阿
- 关于求平均值的问题,高手请进
- 求DISTINCT 不能选择 TEXT类型的解决方法
- 我装的是Personal Oracle7,请问其SYS口令是什么?不是change_on_install
- 求教 查看SqlServer执行过的存储过程状态
- 题外话:webcast录制的视频2个小时才10M,我们录制2min就10M,这是什么技术,如何学会,哪里有这种技术,很高深么,为什么网上搜不到,郁闷
alter table cpxxb add citems_net varchar(20) update cpxxb
set citems_net=cpbhupdate cpxxb
set citems_net=b.citems_net
from cpxxb a,(select oebh,min(citems_net) as citems_net from cpxxb group by oebh) b
where a.oebh=b.oebh查询的代码
select * from cpxxb where citems_net in (select citems_net where cpbh=?? or oebh=?? group by citems_net)
对,我要的就是与一个OE号关联的所有直接的间接的OE都列出来!!!!
set citems_net=b.citems_net
from cpxxb a,(select oebh,min(citems_net) as citems_net from cpxxb group by oebh) b
where a.oebh=b.oebh改成select oebh,min(citems_net) as citems_net into #ls1 from cpxxb group by oebhupdate cpxxb
set citems_net=b.citems_net
from cpxxb a,#ls1 b
where a.oebh=b.oebh
oebh即统一编号,对应一个具体产品,可以是多个公司的产品:多个gsmc+cpbh组合
?问题是查询,还是录入?
查询好像一个个反着推查就行了
录入好像也没什么特别的限制
红字部分是什么意思