sql-server - 选择按周分组的 SQL 结果

标签 sql-server tsql sql-server-2005

我想从下表中按周分组选择数据

 Date       Product Name   Sale
+----------+--------------+-----+
 14-05-11     a             2
 14-05-11     b             4 
 17-05-11     c             3
 19-05-11     a             6
 24-05-11     a             6
 29-05-11     a             6    

假设今天是 30-05-11

所以我的结果应该是这样的。

 Product Name         First Week   Second Week  Third Week
+--------------------+------------+------------+-------------+
   a                      12            6           2
   b                       0            0           4 
   c                       0            3           0  

有人会指导我如何编写 SQL 查询来实现此行为吗?

最佳答案

我认为这应该可以做到..

Select 
ProductName,
WeekNumber,
sum(sale)
from
(
    SELECT 
    ProductName,
    DATEDIFF(week, '2011-05-30', date) AS WeekNumber,
    sale
    FROM table
)
GROUP BY
ProductName,
WeekNumber

关于sql-server - 选择按周分组的 SQL 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6410134/

相关文章:

sql-server - SQL Server 分组依据/排序依据

sql - tsql 返回索引的数据文件

mysql - 如何使用微软工具SSIS 2005将数据从SQL Server传递到mysql?

sql-server - 将逗号分隔的字符串转换为要在 "IN"SQL 中使用的整数

java - 使用 TSQL 解析 Apple plist

asp.net - .NET 与 SQL Server - 重复搜索的最佳实践

c# - 防止失败的 Insert 声明下一个 Identity 值

sql-server - 如果sysname不能为null,那么在这个SQL Server系统存储过程中sysname怎么可能= null呢?

mysql - 如何解决这两个查询?

sql-server - SQL Server 2005 复制在一分钟后停止且没有错误