一个SQL语句:
> 表A  字段有  日期 date 金额 amount
> 以每个星期四到下个星期五为一周,按周统计每周金额

解决方案 »

  1.   

    SET DATEFIRST 4
    SELECT DATEPART(WEEK, 日期) week,sum(amount) from  table group by DATEPART(WEEK, 日期)
    SET DATEFIRST 1
      

  2.   

    select sum(amount) from a where date=>@date and date<dateadd(day,7,@date)
      

  3.   

    SET DATEFIRST 4  设置星期四为一周的第一天。接着又怎么SET DATEFIRST 1,设置为星期一呢?
      

  4.   

    还原回星期一
    如果不需要还原
    可以不用“SET DATEFIRST 1”这一句
      

  5.   

    select sum(amount) from a where date=>@date and date<dateadd(day,7,@date)
    问题是。怎么确定@date。选择的条件怎么确定?
      

  6.   

    SELECT DATEPART(WEEK, 日期) week,sum(amount) from  table group by DATEPART(WEEK, 日期)
    DATEPART(WEEK, 日期) week什么意思啊?日期指的是什么?运行的时候,出现GROUP BY 表达式必须引用出现在选择列表中的列名。
      

  7.   

    SET DATEFIRST 4
    SELECT DATEPART(WEEK, 日期) week,sum(amount) from  table group by DATEPART(WEEK, 日期)
    SET DATEFIRST 1这个可以,不过按楼主的意思,好像应该是 SET DATEFIRST 5
      

  8.   

    SELECT DATEPART(WEEK, 日期) week,sum(amount) from  table group by DATEPART(WEEK, 日期)
    DATEPART(WEEK, 日期) week什么意思啊?日期指的是什么?运行的时候,出现GROUP BY 表达式必须引用出现在选择列表中的列名。---------------------group by 后面改成 week 试试
      

  9.   

    DATEPART(WEEK, 日期) week  取的是日期的“周”的部分,最后把这列命名为 week ,所以group by 后面应该是 "week"SET DATEFIRST 5 是把每周的第一天设置为 周五,这样group by 就是按照"本周周五 - 下周周四" 的方式给出结果了
      

  10.   

    week是datepart的参数
    你可以去参考SQL的联想手册
      

  11.   

    列名 'week' 无效。。运行不了?
      

  12.   

    后面的group by 还是不要用 week,用DATEPART(week, date),我测试了一下,这样就可以了:SET DATEFIRST 5
    SELECT DATEPART(week, date) as [week], sum(amount) from  tb group by DATEPART(week, date)
      

  13.   

    cansum396(沉觉不醒) ,paho(HuNTeR) 要多少分?加给你们。
      

  14.   

    为什么不在程序中实现?在程序中计算好日期,传过去不就可以了吗?
    select sum(amount) from a where date=>@date and date<dateadd(day,7,@date)
      

  15.   

    DATEPART(week, date)改为
    DATEPART(week, DATEADD(dd,5,date))即可