以查询结果为依据的一个存储过程
各位高手,上次我解决了这样一个问题:
我一个prodcut表
product
a
b
c
d
e
f
g
.
.
.
另一个表he_productorder
breed amount
a 5
c 3
e 2
g 8
现要求查询出结果如下
breed amount
a 5
b
c 3
d
e 2
f
g 8
.
.
.
无数据的品种一定要显示为空.
解决方案为:
--存储过程
CREATE procedure he_o;1
@shopname varchar(20)
as
Select he_product.product,isnull(cast(T.amount as char(5)), ' ') amount
From he_product Left outer join (Select breed,amount From he_productorder_view where sname=@shopname) T
On he_product.product=T.breed
GO
现在我又碰到了一个问题,比如以下存储过程
CREATE PROCEDURE he_order;5
@Tname varchar(16)
as
SELECT Breed,sum(amount) as amount FROM He_ProductOrder_view
WHERE (TName = @Tname) and (Amount <> - 100)
GROUP BY Breed,PId ORDER BY PId
GO
得到结果如下:
breed amount
1 50
2 30
4 20
6 15
8 10
11 23
我要从以上结果中以breed为依据来找到订货情况实现如下效果:
breed amount
1 2
2
4 8
6 2
8
11 9
其实就是把原来的product表换成现在的那个存储过程的结果,可是我比较菜,请赐教!
------解决方案--------------------你這裡要麼用實體表或者用全局臨時表,用局部臨時表的話,就由於作用域的問題在外部無法調用。
可以參考下這個帖子。
http://community.csdn.net/Expert/TopicView.asp?id=5429308