首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

复杂的SQL查询统计

2012-01-16 
求一个复杂的SQL查询统计以下给出测试数据 需要统计成以下形式总总分数学总分语文总分李四10820 6483.504

求一个复杂的SQL查询统计
以下给出测试数据 需要统计成以下形式
总 总分数学 总分 语文 总分
李四 10 820 6 483.50 4 336.50
张三 10 829 7 595.50 3 233.50

1张三 数学 80.502001
2张三 数学 82.502002
3张三 数学 83.502003
4张三 数学 84.502004
5张三 数学 90.002005
6张三 数学 84.502006
7张三 数学 90.002007
8张三 语文 80.502001
9张三 语文 82.502002
10张三 语文 70.502003
11李四 数学 84.502000
12李四 数学 80.502001
13李四 数学 60.502002
14李四 数学 83.502003
15李四 数学 84.502004
16李四 数学 90.002005
17李四 语文 80.502001
18李四 语文 82.502002
19李四 语文 83.502003
20李四 语文 90.002005

SQL code
 
CREATE TABLE #temp(
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[Name] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[Class] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
[Mark] [numeric](18, 2) NULL,
[Term] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_temp] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('张三','数学','80.5','2001')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('张三','数学','82.5','2002')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('张三','数学','83.5','2003')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('张三','数学','84.5','2004')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('张三','数学','90','2005')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('张三','数学','84.5','2006')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('张三','数学','90','2007')

INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('张三','语文','80.5','2001')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('张三','语文','82.5','2002')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('张三','语文','70.5','2003')


INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('李四','数学','84.5','2000')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('李四','数学','80.5','2001')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('李四','数学','60.5','2002')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('李四','数学','83.5','2003')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('李四','数学','84.5','2004')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('李四','数学','90','2005')

INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('李四','语文','80.5','2001')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('李四','语文','82.5','2002')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('李四','语文','83.5','2003')
INSERT INTO #temp([Name],[Class],[Mark],[Term])VALUES('李四','语文','90','2005')

select Name,class,count(id),sum(Mark) from #temp
group by Name,class

drop table #temp


/*测试结果
李四        数学        6483.50
张三        数学        7595.50
李四        语文        4336.50
张三        语文        3233.50
*/

/*实际想要的结果

总    总分数学  总分    语文      总分
李四    10    820 6    483.50    4 336.50
张三    10    829 7    595.50    3 233.50
*/



[解决办法]
先顶下
[解决办法]
那我接分.

热点排行
Bad Request.