SELECT SUM(al_Amount) AS SumAmount
FROM tablename
WHERE (al_Date BETWEEN '2005-11-18' AND '2005-12-25') OR
      (al_Date BETWEEN '2005-05-10' AND '2005-08-20') [OR (...) ...]

解决方案 »

  1.   

    declare @Time1 datetime,@Time2 datetime
    set @Time1='2005-11-18'
    set @Time2='2005-12-25'
    select sum(al_Amount) as al_Amount from 表 where between @Time1 and @Time2
      

  2.   

    可以建个存储过程!
    CREATE PROCEDURE Temp_T(@Time1 datetime,@Time2 datetime)
    as 
    select sum(al_Amount) as al_Amount from 表 where al_Date  between @Time1 and @Time2
      

  3.   

    select sum(al_Amount) from tablename where al_Date  between time1 and time2
      

  4.   

    hdwong(冰山一角),scmail81(freedom,可以建个存储过程!
    请看清题目
    要得出任意时间段的求和

    时间段1: 
    时间段2
    时间段n存储过程不太可行,因为日期是不定的,需要用数据的变通方法
      

  5.   

    SELECT SUM(cs_Amount) AS al_Amount FROM [tb_Corp_Sale] WHERE cs_CreateDate BETWEEN CONVERT(SMALLDATETIME,'2005-05-10') AND
    CONVERT(SMALLDATETIME,'2005-07-10') UNION 
    SELECT SUM(cs_Amount) AS al_Amount FROM [tb_Corp_Sale] WHERE cs_CreateDate BETWEEN CONVERT(SMALLDATETIME,'2005-07-10') AND
    CONVERT(SMALLDATETIME,'2005-07-19')
    SELECT SUM(cs_Amount) AS al_Amount FROM [tb_Corp_Sale] WHERE cs_CreateDate BETWEEN CONVERT(SMALLDATETIME,'2005-09-10') AND
    CONVERT(SMALLDATETIME,'2005-09-22')
    SELECT SUM(cs_Amount) AS al_Amount FROM [tb_Corp_Sale] WHERE cs_CreateDate BETWEEN CONVERT(SMALLDATETIME,'2005-10-1') AND
    CONVERT(SMALLDATETIME,'2005-11-2')
    SELECT SUM(cs_Amount) AS al_Amount FROM [tb_Corp_Sale] WHERE cs_CreateDate BETWEEN CONVERT(SMALLDATETIME,'2005-11-9') AND
    CONVERT(SMALLDATETIME,'2005-12-3')用这种方式查询得出结果
    但好像不太对