设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1728|回复: 5
打印 上一主题 下一主题

[帮助] 如何在ACCESS 2007中用SQL查询实现原SQL server中计算存储程序

[复制链接]
跳转到指定楼层
1#
发表于 2011-11-30 21:54:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zgfrqzone 于 2011-11-30 22:17 编辑

原SQL server中计算存储程序如下:

CREATE PROCEDURE 工费 AS
Declare @A int
Delete 工费明细表
insert into 工费明细表
Select * from 工费明细
Select @A=0
While @A<10
begin
delete 组件工费
insert  into 组件工费
select 工序名,sum(isnull(定额工时,0)) as 工时, sum(isnull(工费,0)) as 工费, 所属件号 from 工费明细表 group by 所属件号,工序名
insert into 组件工费
select 视图2.工序名,视图2.定额工时 as 工时,视图2.工费 as 工费,组件价格.所属件号 from 视图2,组件价格 where 视图2.零件号=组件价格.所属件号
delete 组件工费2
insert into 组件工费2
select 工序名, sum(isnull(工时,0)) as 工时, sum(isnull(工费,0)) as 工费,所属件号 from 组件工费 group by 所属件号,工序名
delete 工费明细表 from 工费明细表,组件价格 where 工费明细表.零件号=组件价格.所属件号
insert into 工费明细表
select 结构表.零件号 as 零件号,结构表.单位件数 as 单位件数,组件工费2.工序名,组件工费2.工时*结构表.单位件数 as 定额工时,组件工费2.工费*结构表.单位件数 as 工费,结构表.所属件号 as 所属件号 from 结构表,组件工费2 where 结构表.零件号=组件工费2.所属件号
set @A=@A+1
end
select 所属件号 as 零件号,工序名, convert(numeric(8,2),工时) as 工时, convert(numeric(8,2),工费) as 工费 from 组件工费2
where exists
(select * from 视图2
Where 组件工费2.所属件号=视图2.零件号)
Union all
(select 零件号,工序名, convert(numeric(8,2),定额工时), convert(numeric(8,2),工费) from 视图2
Where not exists
(select * from 组件工费2
Where 视图2.零件号=组件工费2.所属件号))
Order by 零件号,工序名
GO



CREATE PROCEDURE 价格 AS
Declare @A int
Delete 产品价格表
Insert into 产品价格表
Select * from 产品价格
Select @A=0
While @A<10
Begin
Delete 组件价格
Insert into 组件价格
Select sum(isnull(材料成本,0)) as 材料成本, sum(isnull(工时,0)) as 工时, sum(isnull(工费,0)) as 工费, sum(isnull(合计,0)) as 合计,所属件号 from 产品价格表 group by 所属件号
Update 产品价格表
Set 产品价格表.材料成本=产品价格.材料成本+产品价格表.单位件数*组件价格.材料成本
产品价格表.工时=产品价格.工时+产品价格表.单位件数*组件价格.工时
产品价格表.工费=产品价格.工费+产品价格表.单位件数*组件价格.工费
产品价格表.合计=产品价格.合计+产品价格表.单位件数*组件价格.合计
From 产品价格表,组件价格,产品价格 where 产品价格表.零件号=组件价格.所属件号 and 产品价格表.零件号=产品价格.零件号
Set @A=@A+1
End
Select * from 产品价格表 order by 所属件号 asc,零件号 asc
GO

请帮我修改成在ACCESS2007中的用SQL语句创建查询。万分感谢!!!

如果在ACCESS 2007中用SQL查询实现不了,那该在使用什么工具来实现上述计算存储程序呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2011-11-30 22:15:52 | 只看该作者
只能用VBA来处理,在查询不能处理多条语句
3#
 楼主| 发表于 2011-11-30 22:23:32 | 只看该作者
andymark 发表于 2011-11-30 22:15
只能用VBA来处理,在查询不能处理多条语句

哦。那个模块我还不会用哦。。。
4#
发表于 2011-12-1 07:30:53 | 只看该作者
或者写成OpenQuery宏组来执行多个查询。

点击这里给我发消息

5#
发表于 2011-12-1 09:53:17 | 只看该作者
在VBA中写,最好用事务
6#
 楼主| 发表于 2011-12-1 19:41:54 | 只看该作者
哦。关键我还没学会VBA模块。。事务也不会哦。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-29 02:35 , Processed in 0.101316 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表