标题:[求助]关于SQLSever数据库,每天查询该天历史表中每一列的最大值,将其存入 ...
只看楼主
meloop
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-2-5
结帖率:0
已结贴  问题点数:20 回复次数:7 
[求助]关于SQLSever数据库,每天查询该天历史表中每一列的最大值,将其存入第二张MAX表,每日增加一条数据
表一为历史数据表yiwuwuhis,表二为最大值统计表yiwuwuMAX。我现在的做法是在代理里面作业步骤里面写语句:insert into yiwuwuMAX(RJ,RK,RZ,DATATIME) SELECT max(RJ),max(RK),max(RZ),CONVERT(varchar(16),DATATIME,120) from yiwuwuhis where convert(char(10),DATATIME,21)=convert(char(10),getdate(),21)group by convert(varchar(16),DATATIME,120)。然后在计划里写明执行时间。
作业执行成功。但在MAX表中会有很多条记录
1    0.087778    0.712778    8    2015-02-05 08:25:00.000
2    0.296667    1.468889    8    2015-02-05 09:10:00.000
3    0.603333    1.847222    8    2015-02-05 09:33:00.000
4    0.848889    2.226111    8    2015-02-05 09:56:00.000
5    0.855556    2.604445    8    2015-02-05 10:18:00.000
6    0.861667    2.982778    8    2015-02-05 10:41:00.000
但我只需要最后一条最大值,并且每天添加一条。我哪里做错了吗?
搜索更多相关主题的帖子: convert insert 数据库 最大值 数据表 
2015-02-05 12:39
meloop
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-2-5
得分:0 
回复 楼主 meloop
我发现作业一直执行,将历史表中的数据全部加到了MAX表,跪了,失败。。谁能帮帮我啊
2015-02-05 14:18
antjl
Rank: 2
等 级:论坛游民
威 望:1
帖 子:21
专家分:71
注 册:2012-8-16
得分:5 
Insert Into yiwuwuMAX(RJ,RK,RZ,DATATIME)
Select Max(RJ),Max(RK),Max(RZ),Max(Convert(VarChar(16),DATATIME,120)) From yiwuwuhis
Where Convert(Char(10),DATATIME,21)=Convert(Char(10),Getdate(),21)
Group By Convert(VarChar(10),DATATIME,120)

[ 本帖最后由 antjl 于 2015-2-10 15:25 编辑 ]
2015-02-06 10:24
firstbobo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:55
专家分:106
注 册:2010-1-21
得分:5 
这是sql的问题,还是作业的问题,先要搞清;
2015-02-06 20:20
firstbobo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:55
专家分:106
注 册:2010-1-21
得分:0 
可能是sql的问题,看我操作的结果;
表,select max,select max 加 group,如下图;
2015-02-06 22:25
firstbobo
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:55
专家分:106
注 册:2010-1-21
得分:0 
看我以上的sql,select max 加 group by,返回了表的全部行;
如果返回带max的单行数据,是一个子查询;
比如我返回person表中等级最高的人的姓名,性别,年龄,等级,如下;
2015-02-06 22:30
mxbing1984
Rank: 7Rank: 7Rank: 7
来 自:贵州道真
等 级:贵宾
威 望:37
帖 子:73
专家分:342
注 册:2014-8-8
得分:5 
select convert(varchar(16),getdate(),120) --2015-02-07 08:27
select convert(varchar(10),getdate(),120) --2015-02-07
看看你的Group by 转换的结果到分钟级别了,意思是每分钟一个最大值
你需要的是每天一个最大值,应该转换到天,取varchar(10)就是了
还有你已经是按天查询的,group by 不要都行
insert into yiwuwuMAX(RJ,RK,RZ,DATATIME)
SELECT max(RJ),max(RK),max(RZ),convert(char(10),getdate(),21)
From yiwuwuhis where convert(char(10),DATATIME,21)=convert(char(10),getdate(),21)

天再高,踮起脚尖就能更接近阳光
2015-02-07 08:33
volte
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:69
帖 子:1167
专家分:1316
注 册:2004-12-19
得分:5 
楼上两位回答专业!

大家都是朋友,有空就来坐坐!
2015-02-11 10:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-441793-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.350339 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved