RANGE GROUP BY日期中的COUNT条记录

时间:2011-04-29 07:06:58

标签: sql ms-access count group-by

我有一张销售表,显示每次销售的日期和时间。

例如:

saleid | saledate | saletime
1 | 20110327 | 101个
2 | 20110327 | 102个
3 | 20110328 | 201

(因此销售2发生在20110327,102)

我需要构造一个SQL语句: 按日期对销售进行分组(每行是不同的日期),然后是
计算每个时间范围的销售额。 (每个时间范围都是一个单独的列)

表格看起来像这样:

saledate | 101-159 | 200-259 |
20110327 | 2 | 0 |
20110328 | 0 | 1 |

它需要是一个单一的声明,saledate和销售时间需要保持数字格式 (我从数百万行的数据库表中提取)

我正在使用MS Access

非常感谢任何建议。

非常感谢你!

2 个答案:

答案 0 :(得分:0)

SELECT saledate,
SUM(IIF(saletime >= 101 and saletime <= 159), 1, 0) as [101To159)
SUM(IIF(saletime >= 200 and saletime <= 259), 1, 0) as [200To259)
FROM myTable
GROUP BY saledate

注意:我没有运行此查询。但是,这是可能的。

答案 1 :(得分:0)

SELECT saledate,
SUM(case when saletime between 101 and 159 then 1 else 0 end ) as R101_159,
SUM(case when saletime between 200 and 259 then 1 else 0 end ) as R200_59
FROM myTable
GROUP BY saledate