首页 新闻 搜索 专区 学院

求存储过程?急

0
悬赏园豆:20 [已解决问题] 解决于 2010-11-09 13:58

如何从表A取得指定id的信息的ProductsTypeId和Sales记录和另外一个表B中的Sales比较两个表通过ProductsTypeId关联。进行比较:
1.如果小于表B中的Sales,则更新表A的status=3,ProcessStatus=1然后结束,
2.如果大于或等于Sales则继续判断从A中取出ProductsName和CompanyName,ProductsModel 3个字段和表c中ProductsName和CompanyName,ProductsModel进行比较,现在表a中没有CompanyName字段信息,他通过customerId和d中customerId关联,关联d中存在CompanyName进行比较,
3.如果存在则在更新表A中的status字段为1和ProcessStatus=1,否则更新表A的status=3,ProcessStatus=1然后结束。
另外补充上:如果ProductsModel字段比较的话如果是A中的信息是sa,表B中ProductsModel信息为:sa、sc则也算存在

谢谢各位大侠。

孤星赏月的主页 孤星赏月 | 初学一级 | 园豆:125
提问于:2010-11-07 22:20
< >
分享
最佳答案
0

CREATE PROCEDURE procedurename AS

BEGIN--第一种情况

update A set status=3,ProcessStatus=1  from B where A.ProductsTypeId=B.ProductsTypeId and A.Sales<B.Sales

--第二种 update A set status=1,ProcessStatus=1  from B,C where A.ProductsTypeId=B.ProductsTypeId and A.Sales>=B.Sales  and a.companyid in (select companyid from D where d.companyname=c.companyname)  and a.ProductsName=c.ProductsName and a.ProductsModel=C.ProductsModel

 END

GO

楼主说的如果ProductsModel字段比较的话如果是A中的信息是sa,表B中ProductsModel信息为:sa、sc则也算存在不知道有没有什么规则还是ProductsModel就这两种情况,可以看情况修改上面存储过程

收获园豆:20
雪莱·亨尼格 | 小虾三级 |园豆:524 | 2010-11-08 10:42
其他回答(1)
0

如果是sql server 2008,可以试试merge

http://www.cnblogs.com/downmoon/archive/2010/10/17/1853833.html

邀月 | 园豆:25375 (高人七级) | 2010-11-08 08:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册