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

数据集中的动态添加新行的有关问题

2012-01-11 
数据集中的动态添加新行的问题!现在有一个根据条件查询得到的数据集,在遍历该数据集在生成一个新的数据集,

数据集中的动态添加新行的问题!
现在有一个根据条件查询得到的数据集,在遍历该数据集在生成一个新的数据集,在新数据集中要动态的插入新行.

这个问题本来昨天我在SQL区发了贴.请大家看看这里能更好的理解我的需求.谢谢.
http://community.csdn.net/Expert/topic/5474/5474861.xml?temp=.3563349

paoluo(一天到晚游泳的鱼)  
chuifengde(树上的鸟儿)   俩位朋友给了我一个SQL.不过个人技术菜没有理解好.目的也没有完全达到.所以我就又把之前的思路改了下.
现在我直接得到按月份查询的数据集,就是想根据RIV_NAME来分组了.

RIV_NAME   Username   RIV_NUM       RIV2_EXAMINE       RIV2_DATE  
A                   张山             71                   杨行镇   2007-3-12   11:10:37  
A                   张山             83                   杨行镇   2007-3-12   13:57:28  
A                   张山             77                   杨行镇   2007-3-12   13:58:08  
B                   李四             91                   杨行镇   2007-3-23   13:52:14  
B                   李四             80                   月浦镇   2007-3-23   14:41:35  
B                   张山             73                   杨行镇   2007-3-23   15:05:05  
C                   王五             90                   杨行镇   2007-3-27   13:13:11  
C                   王五             94                   杨行镇   2007-3-27   13:19:12  
C                   王五               92                 杨行镇   2007-3-27   13:19:36  
C                   王五             95                   杨行镇   2007-3-27   13:23:16  

我想显示成
RIV_NAME   NUM1     NUM2       NUM3     NUM4           AVG           RIV2_EXAMINE       RIV2_DATE  
A                   71       83             77         空               77                       杨行镇                 3月
B                   91         80           73         空               81                       杨行镇                 3月
C                   90         94           92           95             92                         杨行镇             3月




现在我就是无法生成上面的结果.

请大家能给出具体的解决步骤.本人菜鸟.请大家帮忙了。   谢谢!

[解决办法]
--只需要修改一點點就可以得到你要的結果

Create Table 表
(RIV_NAME Varchar(10),
Username Nvarchar(10),
RIV_NUM Int,
RIV2_EXAMINE Nvarchar(10),
RIV2_DATE DateTime)
Insert 表 Select 'A ', N '张山 ', 71, N '杨行镇 ', '2007-3-12 11:10:37 '
Union All Select 'A ', N '张山 ', 83, N '杨行镇 ', '2007-3-12 13:57:28 '
Union All Select 'A ', N '张山 ', 77, N '杨行镇 ', '2007-3-12 13:58:08 '
Union All Select 'B ', N '李四 ', 91, N '杨行镇 ', '2007-3-23 13:52:14 '
Union All Select 'B ', N '李四 ', 80, N '月浦镇 ', '2007-3-23 14:41:35 '
Union All Select 'B ', N '张山 ', 73, N '杨行镇 ', '2007-3-23 15:05:05 '
Union All Select 'C ', N '王五 ', 90, N '杨行镇 ', '2007-3-27 13:13:11 '
Union All Select 'C ', N '王五 ', 94, N '杨行镇 ', '2007-3-27 13:19:12 '
Union All Select 'C ', N '王五 ', 92, N '杨行镇 ', '2007-3-27 13:19:36 '
Union All Select 'C ', N '王五 ', 95, N '杨行镇 ', '2007-3-27 13:23:16 '
GO
Declare @S Varchar(8000)
Select @S = 'Select RIV_NAME '
Select @S = @S + ', Max(Case ID When ' + Rtrim(ID) + ' Then Rtrim(RIV_NUM) Else ' ' ' ' End) As [RIV_NUM ' + Rtrim(ID) + '] ' From
(Select (Select Count(*) From 表 Where RIV_NAME = A.RIV_NAME And RIV2_DATE <= A.RIV2_DATE And Month(RIV2_DATE) = 3) As ID, * From 表 A Where Month(RIV2_DATE) = 3) A Group By ID
Select @S = @S+ ' , AVG(RIV_NUM) As [AVG], Max(RIV2_EXAMINE) As RIV2_EXAMINE, DateName(mm, RIV2_DATE) As RIV2_DATE From (Select (Select Count(*) From 表 Where RIV_NAME = A.RIV_NAME And RIV2_DATE <= A.RIV2_DATE And Month(RIV2_DATE) = 3) As ID, * From 表 A Where Month(RIV2_DATE) = 3) A Where Month(RIV2_DATE) = 3 Group By RIV_NAME, DateName(mm, RIV2_DATE) ' --加上AVG
EXEC(@S)
GO
Drop Table 表
--Result
/*
RIV_NAMERIV_NUM1RIV_NUM2RIV_NUM3RIV_NUM4AVGRIV2_EXAMINERIV2_DATE
A71837777杨行镇三月
B91807381杨行镇三月
C9094929592杨行镇三月
*/

热点排行