请教一个sql语句

表orderordersidproductnum1a11b22b32c13c23a3得到的结果如下ordersidproduct_aproduct_bproduct_c1... 表order
ordersid product num
1 a 1
1 b 2
2 b 3
2 c 1
3 c 2
3 a 3

得到的结果如下
ordersid product_a product_b product_c
1 1 2 0
2 0 3 1
3 2 0 3

order表中的product不一定是固定的,有多有少
是乎要用到转置,请牛人帮一下忙写一下通用SQL语句
如果只能用存储过程,请写的详细一点,
我分只有100分,被采纳的,全给了.谢谢!
文本表有点乱,上传一张图片看的清楚点.
展开
 我来答
csuxp2008
2010-02-17 · TA获得超过6485个赞
知道大有可为答主
回答量:4704
采纳率:50%
帮助的人:2468万
展开全部
分组之后,使用case when 即可

select ordersid,
sum(case when product=a then num end) product_a,
sum(case when product=b then num end) product_b,
sum(case when product=c then num end) product_c
from order
group by ordersid
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alex_hy
2010-02-17 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2601
采纳率:100%
帮助的人:984万
展开全部
declare @sql nvarchar(4000)

set @sql='select ordersid'

select @sql=@sql+',sum(case product when '''+product+''' then num else 0 end) as product_'+product from [order] group by product

select @sql=@sql+' from [order] group by ordersid'

exec sp_executesql @sql
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
amuluo24
2010-02-17
知道答主
回答量:40
采纳率:0%
帮助的人:0
展开全部
小弟看懂1楼的做的东西
只会这个
我是在SQLSERVER2008 下做的

select distinct r.ordersid ,
(select SUM(a.num) from [order] a where a.product='a' and a.ordersid=r.ordersid ) as procduct_a,
(select SUM(b.num) from [order] b where b.product='b' and b.ordersid=r.ordersid ) as procduct_b,
(select SUM(c.num) from [order] c where c.product='c' and c.ordersid=r.ordersid ) as procduct_c
from [order] r
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cytiger2009
2010-02-17
知道答主
回答量:54
采纳率:0%
帮助的人:0
展开全部
select ordersid,
sum(case product when a then num) product_a,
sum(case product when b then num) product_b,
sum(case product when c then num) product_c
from order
group by ordersid
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hemanschien
2010-02-17 · 超过38用户采纳过TA的回答
知道答主
回答量:86
采纳率:0%
帮助的人:89.6万
展开全部
除了Alex以外,其他应该都错,因为产品的种类是变数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式