高难度sql语句求解~~~~~~~~~ select 年度 , 分类 , sum(数量) 数量 , 产品总数 = (select sum(数量) from tb where 年度 = t.年度) group by 年度 , 分类 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create table tb(年度 int, 名称 varchar(10), 分类 varchar(10) , 数量 int)insert into tb values(2008 , 'A' , '优制品' , 50 )insert into tb values(2008 , 'A' , '合格' , 20 )insert into tb values(2008 , 'B' , '优制品' , 30 )insert into tb values(2008 , 'B' , '合格' , 40 )insert into tb values(2009 , 'A' , '优制品' , 60 )insert into tb values(2009 , 'A' , '合格' , 30 )insert into tb values(2009 , 'B' , '优制品' , 40 )insert into tb values(2009 , 'B' , '合格' , 50 )goselect 年度 , 分类 , sum(数量) 数量 , 产品总数 = (select sum(数量) from tb where 年度 = t.年度) from tb t group by 年度 , 分类drop table tb/*年度 分类 数量 产品总数 ----------- ---------- ----------- ----------- 2008 合格 60 1402008 优制品 80 1402009 合格 80 1802009 优制品 100 180(所影响的行数为 4 行)*/ if object_id('tb')is not null drop table tbgocreate table tb(年度 varchar(10), 名称 varchar(10), 分类 nvarchar(10), 数量 int) insert tb select 2008 ,'A', N'优制品' , 50 insert tb select 2008 ,'A', N'合格' , 20 insert tb select 2008 ,'B', N'优制品' , 30 insert tb select 2008 ,'B', N'合格' ,40 insert tb select 2009 ,'A', N'优制品' , 60 insert tb select 2009 ,'A', N'合格' ,30 insert tb select 2009 , 'B', N'优制品' , 40 insert tb select 2009, 'B', N'合格' , 50 SELECT 年度,分类,SUM(数量)数量,(SELECT SUM(数量) FROM TB WHERE 年度=T.年度) FROM TB T GROUP BY 年度,分类/*年度 分类 数量 ---------- ---------- ----------- ----------- 2008 合格 60 1402008 优制品 80 1402009 合格 80 1802009 优制品 100 180*/ update 小表与大表之间有性能差别吗? 行变列的问题?(有一点不太明白) 如何获取符合数量的订单号(二) sql 数据库转换问题,高手进 数据库太大了无法上传,请问如何解决 显示查询字符串=256 ??? 如何把sql嵌入C,同时如何编译 如何能通过SQL语句获得我需要的行显示方式? 很难的SQL语句怎么实现? 求教 事务复制如何安全的截断日志 请教:应该如何使用MS-SQL的字符串函数?
insert into tb values(2008 , 'A' , '优制品' , 50 )
insert into tb values(2008 , 'A' , '合格' , 20 )
insert into tb values(2008 , 'B' , '优制品' , 30 )
insert into tb values(2008 , 'B' , '合格' , 40 )
insert into tb values(2009 , 'A' , '优制品' , 60 )
insert into tb values(2009 , 'A' , '合格' , 30 )
insert into tb values(2009 , 'B' , '优制品' , 40 )
insert into tb values(2009 , 'B' , '合格' , 50 )
goselect 年度 , 分类 , sum(数量) 数量 , 产品总数 = (select sum(数量) from tb where 年度 = t.年度) from tb t group by 年度 , 分类drop table tb/*
年度 分类 数量 产品总数
----------- ---------- ----------- -----------
2008 合格 60 140
2008 优制品 80 140
2009 合格 80 180
2009 优制品 100 180(所影响的行数为 4 行)*/
go
create table tb(年度 varchar(10), 名称 varchar(10), 分类 nvarchar(10), 数量 int)
insert tb select 2008 ,'A', N'优制品' , 50
insert tb select 2008 ,'A', N'合格' , 20
insert tb select 2008 ,'B', N'优制品' , 30
insert tb select 2008 ,'B', N'合格' ,40
insert tb select 2009 ,'A', N'优制品' , 60
insert tb select 2009 ,'A', N'合格' ,30
insert tb select 2009 , 'B', N'优制品' , 40
insert tb select 2009, 'B', N'合格' , 50
SELECT 年度,分类,SUM(数量)数量,(SELECT SUM(数量) FROM TB WHERE 年度=T.年度) FROM TB T GROUP BY 年度,分类
/*年度 分类 数量
---------- ---------- ----------- -----------
2008 合格 60 140
2008 优制品 80 140
2009 合格 80 180
2009 优制品 100 180*/