现有表:
create table #T(tdate datetime,symbol varchar(20),sname varchar(100),cbs varchar(200),jyje float,mre float,mce float)
insert into #T values('2007-09-01','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-02','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-20','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-21','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-22','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-23','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-24','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-01','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-02','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-03','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-04','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-05','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-06','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-07','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')select * from #T order by tdatetdate symbol sname cbs jyje mre mce
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2007-09-01 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-02 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-20 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-21 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-22 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-23 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-24 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-01 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-02 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-03 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-04 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-05 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-06 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-07 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
希望根据传入参数得到结果:
参数1:给定时间段(@startDate,@endDate)
参数2:指定求和区间(日,周,月,年)
例:
set @startDate='2006-11-07'
set @endDate='2007-01-07'
set @period=7 --周
--结果:
period symbol sname cbs jyje mre mce
------------------------------ -------------------- --------------------- ------------ ------------------------- ----------------- ------------------------------
2007-09-01 至 2007-09-07 02006 02国债06 工商银行 这段时间该字段的和 这段时间该字段的和 这段时间该字段的和
2007-09-08 至 2007-09-14 -- -- -- -- -- --
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………注:不管实际tdate是否连续,结果都是按照从@startDate开始每过@period周期得到一条对应记录,如果@period周期内没有对应记录则显示“--”
create table #T(tdate datetime,symbol varchar(20),sname varchar(100),cbs varchar(200),jyje float,mre float,mce float)
insert into #T values('2007-09-01','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-02','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-20','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-21','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-22','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-23','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-09-24','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-01','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-02','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-03','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-04','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-05','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-06','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')
insert into #T values('2007-10-07','02006','02国债06','工商银行','-151.61000000000001','0.02','151.61000000000001')select * from #T order by tdatetdate symbol sname cbs jyje mre mce
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2007-09-01 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-02 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-20 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-21 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-22 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-23 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-09-24 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-01 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-02 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-03 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-04 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-05 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-06 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
2007-10-07 00:00:00.000 02006 02国债06 工商银行 -151.61000000000001 0.02 151.61000000000001
希望根据传入参数得到结果:
参数1:给定时间段(@startDate,@endDate)
参数2:指定求和区间(日,周,月,年)
例:
set @startDate='2006-11-07'
set @endDate='2007-01-07'
set @period=7 --周
--结果:
period symbol sname cbs jyje mre mce
------------------------------ -------------------- --------------------- ------------ ------------------------- ----------------- ------------------------------
2007-09-01 至 2007-09-07 02006 02国债06 工商银行 这段时间该字段的和 这段时间该字段的和 这段时间该字段的和
2007-09-08 至 2007-09-14 -- -- -- -- -- --
…………………………………………………………………………………………………………………………………………………………………………………………………………………………………………注:不管实际tdate是否连续,结果都是按照从@startDate开始每过@period周期得到一条对应记录,如果@period周期内没有对应记录则显示“--”
解决方案 »
- sql Server 实例创建问题
- SQL语句 UNIQUE 意思
- 这样的代码还能精简吗?
- 怎么用触发器实现,当修改库A中表a的一条记录时,如何将库B中表b的相应内容也修改掉,这两个库有cid作关联
- 登录失败,Login failed for user 'sa'.[客户端 <named pipe>] 错误:18456,严重性:14,状态:10
- 数据库连接问题!
- (在线)请教存储过程编写高手:给出代码马上给分!!!!!
- 一个关于存储过程的离奇的现象
- 求SQL语句 或 存储过程 !
- help me
- 如何将bbs用户创建的表,改成dbo用户创建的表啊
- 怎么把中文字符转为字母或者数字组合,反过来可以解码还原为中文字符,要求唯一
可以不管symbol,因为symbol与sname是一对一关系