首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求存储过程循环语句,查询几个月内每天的最大值和他的出现时间解决方案

2012-01-15 
求存储过程循环语句,查询几个月内每天的最大值和他的出现时间小弟我写了个存储过程,查询给定时间段内的最

求存储过程循环语句,查询几个月内每天的最大值和他的出现时间
小弟我写了个存储过程,查询给定时间段内的最大值和出现时间。但现在要查询几个月内每天的最大值,想用连接,把查询结果,按每天一个字段来显示。
请问高手们,怎么做?

我的查询最大值和出现时间的存储过程
CREATE PROCEDURE GetMaxEx
@Beginning_Date datetime,
@EndDate datetime 
AS
begin

select d.StationName,d.xian,d.height,d.Longitude,d.Latitude, c.* from
(
select
  StationID,
  max_val=max(Temperature),
  time_at_max=min(RsTime)
from 
(select StationID,RsTime,Temperature from zdzRecord where RsTime>= @Beginning_Date and RsTime<@EndDate and Temperature>-9999) a

where a.Temperature=(select max(Temperature) from zdzRecord where RsTime>=@Beginning_Date and RsTime<@EndDate and StationID=a.StationID )

group by StationID 
) c,
StationInfo d 
where c.StationID = d.StationID order by d.xian

end
GO


[解决办法]

SQL code
每天的最大值--convert(varhcar(10),RsTime,120)--显示天作为组group   by   StationID ,convert(varhcar(10),RsTime,120)CREATE   PROCEDURE   GetMaxEx @Beginning_Date   datetime, @EndDate   datetime   AS begin select   d.StationName,d.xian,d.height,d.Longitude,d.Latitude,   c.*   from ( select       StationID,        convert(varhcar(10),RsTime,120) as 天         max_val=max(Temperature),         time_at_max=min(RsTime) from   (select       StationID,    RsTime,Temperature   from   zdzRecord     where       RsTime> =   @Beginning_Date     and   RsTime <@EndDate   and   Temperature> -9999)     a where       a.Temperature=(select   max(Temperature)           from   zdzRecord   where  DATEDIFF(RsTime,aRsTime)=0        --条件     RsTime> =@Beginning_Date     and   RsTime <@EndDate   and   StationID=a.StationID     ) group   by   StationID  ,convert(varhcar(10),RsTime,120) --加上)   c, StationInfo   d   where   c.StationID   =   d.StationID  order   by   d.xian end GO
[解决办法]
SQL code
SELECT a.* FROM tb aINNER JOIN    (SELECT CONVERT(VARCHAR(10),RsTime,120) dd,MAX(Temperature) mp        FROM tb            WHERE RsTime >= @Beginning_Date AND RsTime <@EndDate AND Temperature> -9999            GROUP BY CONVERT(VARCHAR(10),RsTime,120)    )b    ON CONVERT(VARCHAR(10),RsTime,120)=dd AND Temperature=mp 

热点排行