是这样的...
我要从A表里以date为参数查出多条ID和content(ID是唯一的),再通过查询出的ID查询A表里另外一个date参数的title,name数据...然后把id,content,title,name 的数据全部整合起来得到一个数据条,多个数据...得一个结果集...大家快帮帮忙!!!!!!!!!!!!!!!!在线等待.............盼啊..
我要从A表里以date为参数查出多条ID和content(ID是唯一的),再通过查询出的ID查询A表里另外一个date参数的title,name数据...然后把id,content,title,name 的数据全部整合起来得到一个数据条,多个数据...得一个结果集...大家快帮帮忙!!!!!!!!!!!!!!!!在线等待.............盼啊..
解决方案 »
- ~Convert(bit, @@Trancount)是什么意思
- SQL Server 2008可以通过IP限制远程登录吗?
- 求救UPDATE.给分了!!
- Sqlserver 与 oracle 相比,各方面性能真的差距那么大吗?3000人的国企用的数据库,专业人员最后定性 sqlserver 太差,太初级.......
- 连表查询和分类统计的问题,请高手再次帮忙,实在是想不出来了。。
- 如何直接通过函数名访问函数,无需dbo.函数名方式
- 请教一个算法问题!
- 一个系统集成问题,等待大虾解答~~~~~~~~~~~~~~~~~~~
- 如何利用数据库备份日志还原数据库(在线)
- 两个备份任务(备份同一个数据库)可以同时进行吗?
- 查询分析器自动生成的插入语句如何使用
- 第一次運行很慢,之後速度正常,如何解決?
020009 2.1740 1.2890 2007-08-23 00:00:00
630001 1.3908 1.3908 2007-08-23 00:00:00
020009 2.1920 1.3070 2007-08-24 00:00:00
630001 1.4100 1.4100 2007-08-24 00:00:00表结果就是这样得..不过数据有多条 .
比如有23号,24号两个时间..我想再一个数据里能把两个数据得时间显示在一条数据里..020009 2.1740 1.2890 2007-08-23 00:00:00 2.1920 1.3070 2007-08-24 00:00:00这样得形式得到结果集..多个fundcode 噢....我觉得只有存储过程做得到..但是不会..大家帮帮忙.
insert MF_NetValue
select '020009',2.1740,1.2890,'2007-08-23 00:00:00'union all
select '630001',1.3908,1.3908,'2007-08-23 00:00:00'union all
select '020009',2.1920,1.3070,'2007-08-24 00:00:00'union all
select '630001',1.4100,1.4100,'2007-08-24 00:00:00'select * from MF_NetValue
declare @sql VARCHAR(8000)DECLARE @StartDate DATETIME--查询开始日期
DECLARE @EndDate DATETIME--查询结束日期DECLARE @tmpCondition VARCHAR(2000)
DECLARE @tmpsql VARCHAR(8000)
DECLARE @CurrDate DATETIME
DECLARE @tmpDate VARCHAR(10)set @StartDate='2007-08-23'
set @EndDate='2007-08-25'SET @tmpCondition ='WHERE enddate>='''+CONVERT(VARCHAR(10),@StartDate,120) +''' AND enddate<='''+CONVERT(VARCHAR(10),@EndDate,120) +''''
SET @tmpsql=''
SET @CurrDate = @StartDate
while @CurrDate <= @EndDate
begin
SET @tmpDate = Convert(varchar(10),@CurrDate,121)
select @tmpsql = @tmpsql + ', SUM(CASE WHEN Convert(varchar(10),enddate,121) = '''+@tmpDate+''' THEN AccumulatedUnitNV ELSE 0.00 END) AS ['+CONVERT(VARCHAR(10),@CurrDate,120)+'AccumulatedUnitNV]'
+ ', SUM(CASE WHEN Convert(varchar(10),enddate,121) = '''+@tmpDate+''' THEN UnitNV ELSE 0 END) AS ['+CONVERT(VARCHAR(10),@CurrDate,120)+'UnitNV]' select @CurrDate = @CurrDate +1
end
SET @tmpsql= 'SELECT fundcode ' +@tmpsql
+' FROM MF_NetValue '
+ @tmpCondition
+' GROUP BY fundcode'
PRINT @tmpsql
EXEC (@tmpsql)
drop table MF_NetValue
(4 行受影响)
fundcode AccumulatedUnitNV UnitNV enddate
-------- --------------------------------------- --------------------------------------- -----------------------
020009 2.1740 1.2890 2007-08-23 00:00:00.000
630001 1.3908 1.3908 2007-08-23 00:00:00.000
020009 2.1920 1.3070 2007-08-24 00:00:00.000
630001 1.4100 1.4100 2007-08-24 00:00:00.000(4 行受影响)SELECT fundcode , SUM(CASE WHEN Convert(varchar(10),enddate,121) = '2007-08-23' THEN AccumulatedUnitNV ELSE 0.00 END) AS [2007-08-23AccumulatedUnitNV], SUM(CASE WHEN Convert(varchar(10),enddate,121) = '2007-08-23' THEN UnitNV ELSE 0 END) AS [2007-08-23UnitNV], SUM(CASE WHEN Convert(varchar(10),enddate,121) = '2007-08-24' THEN AccumulatedUnitNV ELSE 0.00 END) AS [2007-08-24AccumulatedUnitNV], SUM(CASE WHEN Convert(varchar(10),enddate,121) = '2007-08-24' THEN UnitNV ELSE 0 END) AS [2007-08-24UnitNV], SUM(CASE WHEN Convert(varchar(10),enddate,121) = '2007-08-25' THEN AccumulatedUnitNV ELSE 0.00 END) AS [2007-08-25AccumulatedUnitNV], SUM(CASE WHEN Convert(varchar(10),enddate,121) = '2007-08-25' THEN UnitNV ELSE 0 END) AS [2007-08-25UnitNV] FROM MF_NetValue WHERE enddate>='2007-08-23' AND enddate<='2007-08-25' GROUP BY fundcode
fundcode 2007-08-23AccumulatedUnitNV 2007-08-23UnitNV 2007-08-24AccumulatedUnitNV 2007-08-24UnitNV 2007-08-25AccumulatedUnitNV 2007-08-25UnitNV
-------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- --------------------------------------- ---------------------------------------
020009 2.1740 1.2890 2.1920 1.3070 0.0000 0.0000
630001 1.3908 1.3908 1.4100 1.4100 0.0000 0.0000(2 行受影响)