表:
日期 姓名 销售额
2007年8月5日 张三 1000
2008年1月2日 张三 1500
2008年1月5日 张三 150
2005年5月1日 李四 350
2008年1月2日 李四 5500 求2008年每个人的第一次销售额、最后一次销售额、年总销售额。格式如下:姓名 首次销售额 末次销售额 年销售总额
张三 1500 150 1650
李四 5500 5500 5500望不吝赐教!
日期 姓名 销售额
2007年8月5日 张三 1000
2008年1月2日 张三 1500
2008年1月5日 张三 150
2005年5月1日 李四 350
2008年1月2日 李四 5500 求2008年每个人的第一次销售额、最后一次销售额、年总销售额。格式如下:姓名 首次销售额 末次销售额 年销售总额
张三 1500 150 1650
李四 5500 5500 5500望不吝赐教!
if object_id('tempdb.dbo.#T') is not null drop table #T
create table #T (日期 varchar(12),姓名 nvarchar(4),销售额 int)
insert into #T
select '2007年8月5日','张三',1000 union all
select '2008年1月2日','张三',1500 union all
select '2008年1月5日','张三',150 union all
select '2005年5月1日','李四',350 union all
select '2008年1月2日','李四',5500select 姓名,
(select top 1 销售额 from #T where 姓名=t.姓名 order by 日期 asc) 首期销售额,
(select top 1 销售额 from #T where 姓名=t.姓名 order by 日期 desc) 末期销售额
from #T as t
group by 姓名/*
姓名 首期销售额 末期销售额
---- ----------- -----------
张三 1000 150
李四 350 5500(2 行受影响)*/
if object_id('tempdb.dbo.#T') is not null drop table #T
create table #T (日期 varchar(12),姓名 nvarchar(4),销售额 int)
insert into #T
select '2007年8月5日','张三',1000 union all
select '2008年1月2日','张三',1500 union all
select '2008年1月5日','张三',150 union all
select '2005年5月1日','李四',350 union all
select '2008年1月2日','李四',5500select 姓名,
(select top 1 销售额 from #T where 姓名=t.姓名 order by 日期 asc) 首期销售额,
(select top 1 销售额 from #T where 姓名=t.姓名 order by 日期 desc) 末期销售额,
(select sum(销售额) from #T where 姓名=t.姓名) 总销售额
from #T as t
group by 姓名/*
姓名 首期销售额 末期销售额 总销售额
---- ----------- ----------- -----------
张三 1000 150 2650
李四 350 5500 5850(2 行受影响)*/
insert into 表 select '2007年8月5日','张三', 1000
union all select '2008年1月2日','张三', 1500
union all select '2008年1月5日','张三', 150
union all select '2005年5月1日','李四', 350
union all select '2008年1月2日','李四', 5500 select 姓名,
(select top 1 销售额 from 表 where 姓名=a.姓名 and left(日期,4)='2008' order by 日期) as 首次销售额,
(select top 1 销售额 from 表 where 姓名=a.姓名 and left(日期,4)='2008' order by 日期 desc) as 末次销售额,
sum(销售额) as 年销售总额
from 表 a
where left(日期,4)='2008'
group by 姓名
go
drop table 表
/*
姓名 首次销售额 末次销售额 年销售总额
----- ----------- ----------- -----------
李四 5500 5500 5500
张三 1500 150 1650(2 行受影响)*/
--> 测试数据: #T1
if object_id('tempdb.dbo.#T1') is not null drop table #T1
create table #T1 ([日期] varchar(50),[姓名] varchar(4),[销售额] int)
insert into #T1
select '2007年8月5日','张三',1000 union all
select '2008年1月2日','张三',1500 union all
select '2008年1月5日','张三',150 union all
select '2005年5月1日','李四',350 union all
select '2008年1月2日','李四',5500select 姓名,
(select top 1 销售额 from #T1 where 姓名=t.姓名 order by 日期 asc) 首期销售额,
(select top 1 销售额 from #T1 where 姓名=t.姓名 order by 日期 desc) 末期销售额,总销售额=sum(销售额)
from #T1 as t
group by 姓名