select name, sum(num) as num, station
from order_s 
where '2007-04-01' between  b_date and e_date and name = '新周刊'
group by name, station

解决方案 »

  1.   

    生成某一天的,每个发行站的订数。不知道表里的  开始时间(b_date),结束时间(e_date)是什么啊  肯定在一天內嗎? 如果是就  
    SELECT  name,station,SUM(num) AS Expr4
    FROM dbo.order_s 
    --WHERE name = '新周刊' and CONVERT( VARCHAR(11),CONVERT(DATETIME, b_date, 111) )='Apr  1 2007'
    GROUP BY name, CONVERT( VARCHAR(11),CONVERT(DATETIME, b_date, 111) ), station
      

  2.   

    开始时间(b_date),结束时间(e_date)不是在一天,是指订报的开始时间,和结束时间,比如2006-1-1至2007-12-31 这样的时间。
      

  3.   

    感谢dulei115(前途无亮) 帮我改进的SQL查询,很好用。不知道这样做查询,将计算工式放在where中,对于几十万条数据的查询来说,影响有多大。我也知道肯定要用到存储过程,因为我从来没做过存诸过程,以前做过触发器。我想听听大家的意见,在做过程时,我要把统计出来的数据放在什么表里,是临时表好,还是实表好。另外,在改写表时,有什么注意的地方。