Sql 如何对查询中的数据进行多次求值? CREATE TABLE#Temp(VisitingCount int,[Time]int) 声明@DateNow DATETIME、@i int、@Time int 设置@DateNow='00:00' 设置@i=1; 而(@i

Sql 如何对查询中的数据进行多次求值? CREATE TABLE#Temp(VisitingCount int,[Time]int) 声明@DateNow DATETIME、@i int、@Time int 设置@DateNow='00:00' 设置@i=1; 而(@i,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,再创建一个嵌套级别: CREATE TABLE #Temp (VisitingCount int, [Time] int ) DECLARE @DateNow DATETIME,@i int,@Time int set @DateNow='00:00' set @i=1; while(@i<48) begin set @DateNow = DATEADD(minute, 30, @DateNow) set @Time = (date

再创建一个嵌套级别:

CREATE TABLE #Temp (VisitingCount int, [Time] int )
DECLARE @DateNow DATETIME,@i int,@Time int
set @DateNow='00:00'  
set @i=1;  
while(@i<48)  
    begin  
        set @DateNow = DATEADD(minute, 30, @DateNow)
        set @Time = (datepart(hour,@DateNow)*60+datepart(minute,@DateNow))/30 
        insert into #Temp(VisitingCount,[Time]) values(0,@Time )
        set @i=@i+1
    end

select Sum(VisitingCount)as VisitingCount, [Time] from #Temp group by [Time] Union All select count(page) as VisitingCount, (datepart(hour,Date)*60+datepart(minute,Date))/30 as [Time] from scr_SecuristLog where Date between '2009-05-04 10:30' and '2009-05-04 12:30' GROUP BY (datepart(hour,Date)*60+datepart(minute,Date))/30--scr order by 2 asc

你很好。但我需要你的hep和高级查询:
select Sum(VisitingCount)as VisitingCount, [Time]
from (
  select Sum(VisitingCount)as VisitingCount, [Time]
    from #Temp group by [Time]
  Union All
    select count(page) as VisitingCount, 
    (datepart(hour,Date)*60+datepart(minute,Date))/30 as [Time]
    from scr_SecuristLog
    where Date between '2009-05-04 10:30' and '2009-05-04 12:30'
    GROUP BY (datepart(hour,Date)*60+datepart(minute,Date))/30--scr
  ) X
group by [Time]
order by 2 asc