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

高分,以上语句或查询该怎么实现,多谢

2013-02-27 
高分求助,以下语句或查询该如何实现,谢谢环境:ASP+SQL SERVER2000SQL视图TEST的结构如下:季度/姓名/销量20

高分求助,以下语句或查询该如何实现,谢谢
环境:ASP+SQL SERVER2000
SQL视图TEST的结构如下:
   季度  /    姓名/  销量
2011年4季度  /张三/  100
2012年1季度  /张三/  100
2012年2季度  /张三/  100
2012年2季度  /张三/  50
2012年1季度  /李四/  50
2012年2季度  /李四/  70
2012年3季度  /李四/  60

要想实现的结果,在ASP页面上显示:
假设在ASP页面中将时间设定为2012年2季度,要求得到以下查询:
姓名/  本季度销量     /本年度销量      /      累计销量
张三/     150    /       250        /       350
李四/     70    /        120          /       120   
(注:因2013年3季度在2季度之后,数据不纳入统计)


假设在ASP页面中将时间设定为2012年3季度,要求得到以下查询:
姓名/  本季度销量     /本年度销量      /累计销量
张三/     150    /       250        /     350
李四/     70    /        120          /     180  
(注:2013年3季度的数据纳入统计)
请问该如何实现,特求助。
asp sql?server
[解决办法]
select 姓名,sum(销量) as 本季度销量,(select sum(销量) from TEST where left(季度,4)='2012' and 姓名=a.姓名) as 本年度销量,(select sum(销量) from TEST where 姓名=a.姓名) as 累计销量 
from TEST a where 季度='2012年2季度' group by 姓名


[解决办法]
分开来写,先把姓名取出来
1.取出姓名: select distinct 姓名 from test

下名的姓名用1的变量
按季度:select 姓名,sum(销量) from test where 季度=‘2012年2季度’ group by 姓名

按年度:select 姓名,sum(销量) from test where left(季度,4)='2012'  group by 姓名

累计:select 姓名,sum(销量) from test
[解决办法]

declare @s varchar(20)
set @s = '2012年3季度'

select 姓名, sum(销量) 销量
from test
where
 (left(季度, 4) < left(@s, 4))
or
 (left(季度, 4) = left(@s, 4) and substring(季度, 6, 1) <= substring(@s, 6, 1))
group by 姓名

热点排行