| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 917 人关注过本帖
标题:求一个sql问题
只看楼主 加入收藏
daikeda
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-7-23
收藏
 问题点数:0 回复次数:1 
求一个sql问题
在一个product表中:有ID,Name字段
在support表中:有ID,Name字段
在uninSale表中:有S.id,P.id,ID,count字段求一条sql语句如下:

         产品1 产品2 产品3
供应商1   数量  数量  数量
供应商2   数量  数量  数量
供应商3   数量  数量  数量
....
供应商n  数量  数量  数量
谢谢各位了
搜索更多相关主题的帖子: sql 数量 供应商 字段 Name 
2008-07-23 23:19
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
收藏
得分:0 
你这是交叉表查询
如果是2000的话就需要你自己写代码实现,你可上网搜索下,大把范例
如果是2005的话好象自身就可以支持交叉表查询
-------------------------------------2000代码如下
Create Table #product([ID] Varchar(10),[Name] Varchar(10))

Create Table #support([ID] Varchar(10),[Name] Varchar(10))

Create Table #uninSale([ID] Varchar(10),[Name] Varchar(10),SID Varchar(10),PID varchar(10),[count] varchar(10))

INSERT INTO #product values('1','杯子')
INSERT INTO #product values('2','手巾')
INSERT INTO #product values('3','桌子')

INSERT INTO #support values('1','张三')
INSERT INTO #support values('2','李四')
INSERT INTO #support values('3','王五')


INSERT INTO #uninSale values('1','单1','1','1',10)
INSERT INTO #uninSale values('2','单2','1','1',20)
INSERT INTO #uninSale values('3','单3','1','2',10)


INSERT INTO #uninSale values('4','单4','2','2',10)
INSERT INTO #uninSale values('5','单5','2','2',20)
INSERT INTO #uninSale values('6','单6','2','3',10)


INSERT INTO #uninSale values('7','单7','3','3',10)
INSERT INTO #uninSale values('8','单8','3','3',20)
INSERT INTO #uninSale values('9','单9','3','1',10)


--SELECT * FROM #uninSale

declare @sql varchar(8000)

set @sql=''
select @sql=@sql + 'sum(case PID when'''+ [ID] +'''
            then [count] else 0 end) as'''+ [Name] +''','
from #product
--print '1:' + @sql

SET @sql= 'SELECT  #support.[Name] AS 供应商,' + LEFT(@sql,LEN(@sql)-1) +
          ' FROM #uninSale INNER JOIN #support ON #uninSale.SID=#support.[ID] GROUP BY #support.[Name] '
--print '2:' + @sql
exec(@sql)

Drop Table #uninSale
Drop Table #product
Drop Table #support
----------------------------------------结果

李四    0    30    10
王五    10    0    30
张三    30    10    0
2008-07-24 09:14
快速回复:求一个sql问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023918 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved