一个查询计算的问题,请给个思路

piaozi2003 2005-07-27 03:08:25
刚刚接触数据库,遇到下面一个问题(后台SQL Server,前台Access)
一个数据库里面有四个表,都很简单(为了方便,我在这里把字段名称用中文表示)

产品表 ( 产品代号 PK, 产品名称,注释 )
零件表 ( 零件代号 PK,零件名称,注释 )
产品零件关系表 [ 一个产品由不同零件组成,这里记录所需要的零件代号和相应数量 ]
( 记录编号 PK, 产品代号,零件代号,零件所需数量 )
定单表 [ 定单中含有订购产品的品种和数量,可能有很多品种的产品]
( 记录编号 PK,定单号, 产品号, 产品数量 )

比如我有一个定单

产品代号 产品数量
------------------------------------------------------------
A1 2
A2 2
A3 3

要求根据这张定单查询本张定单共需要的零件种类和相应的数量(包括每中零件的合计数量)?

我应该怎么做呢?是写SQL语句还是什么?请指教!
...全文
66 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
summerICEREDTEA 2005-07-27
呵呵
我原来写数据库的时候
经常
temp=rs("col")
rs1.open "select col2 from tb where col="&temp
...
回复
子陌红尘 2005-07-27
select
d.零件代号,
d.零件名称,
sum(a.产品数量*c.零件所需数量)
from
定单表 a
inner join
产品表 b
on
a.产品代号 = b.产品代号
inner join
产品零件关系表 c
on
b.产品代号 = c.产品代号
inner join
零件表 d
on
c.零件代号 = d.零件代号
where
a. 定单号 = ...
group by
d.零件代号,d.零件名称
回复
piaozi2003 2005-07-27
由于我只是花一天时间大概了解SQL SERVER的编程结构,时间也很紧,需要边干边做,我大概想了个
思路,不知道可行不可行?

1 用存储过程实现
2 伪代码

事务开始
建立一个临时表 table(记录编号 零件代号,零件数量 )
根据定单号查询 select 产品代号 产品数量
from 定单表
where 定单号=:待查询的定单号

建立游标
while(游标没有结束)
1 利用游标依次查询上面定单号查询的结果行,并将每次查询的
产品代号和产品数量存入两个临时变量 var1,var2
2 运行查询 select 零件代号,零件数量 * var2
from 产品零件关系表
where 产品代号=var1
3 将查询结果值插入临时表 table!
loop (返回循环)
释放游标

对临时表进行分组查询,并将查询结果输出
删除临时表
事务结束

请各位兄弟们帮忙指正正确与否,或者该思路太臭,有无正确的方法?先谢谢了!

回复
发帖
应用实例
创建于2007-09-28

2.7w+

社区成员

MS-SQL Server 应用实例
申请成为版主
帖子事件
创建了帖子
2005-07-27 03:08
社区公告
暂无公告