注册 登录
编程论坛 SQL Server论坛

SQL 查询语句,请教高手解答

davyxjc 发布于 2010-06-08 13:58, 1013 次点击
在数据库中以下记录:
存货编号       供应商         价格
04-0010-01     A               0.5
04-0010-01     B               0.6
04-0020-01     A               1.0
04-0020-01     B               1.1
04-0020-01     C               1.2
我要查询的结果如下:
存货编号      供应商A价格    供应商B价格  供应商C价格
04-0010-01    0.5             0.6
04-0020-01    1.0             1.1          1.2

请问怎样写SQL语句?
8 回复
#2
cnfarer2010-06-08 18:38
SELECT 存货编号, [A] as 供应商A价格, [B] as 供应商B价格, [C] as 供应商C价格
FROM
(SELECT 存货编号, 供应商, 价格
FROM 存货表) p
PIVOT
(
sum(价格)
FOR 供应商 IN
( [A], [B], [C])
) AS pvt
ORDER BY 存货编号

这个语句必须在SQL Server2005及以上版本中运行
#3
davyxjc2010-06-09 14:11
SELECT 存货编号, [A] as 供应商A价格, [B] as 供应商B价格, [C] as 供应商C价格
FROM
(SELECT 存货编号, 供应商, 价格
FROM 存货表) p
PIVOT
(
sum(价格)
FOR 供应商 IN
( [A], [B], [C])
) AS pvt
ORDER BY 存货编号
供应商是从表中搜索出来了,刚开始并不知道某存货对应的供应商是哪一些,从搜索结果中只知道某存货 有多少个供应商(记录条数),但搜索结果中有供应商名称。我们一共有两百多个供应商。
只有本站会员才能查看附件,请 登录

以上是某一个存货对应的供应商的价格。就拿这个例子怎样写SQL语句?


[ 本帖最后由 davyxjc 于 2010-6-9 14:41 编辑 ]
#4
caiqianxing2010-06-11 17:00
回复 3楼 davyxjc
学过的,可是现在又些年头了@!!
#5
realsql2010-07-03 17:42
用SQL2000的CASE语句照样也可以实现!
#6
zbb2952010-07-10 08:43
sql语句都是要常用,一旦放下就很快忘记了~~`
#7
bccn_vip2010-07-10 10:53
换个结果、
#8
zhaojinhua522010-07-12 11:02
SQL2000的CASE语句也可以实现
1