1
A
回答
2
如果你掌握设定的日期,那么你可以使用条件的聚集。在MS Access中,它使用iif()
函数。您的日期看起来像字符串,因此:
select a, b, c, d,
sum(iif(store_date = '17-09-2016', val, 0)) as [17-09-2016],
sum(iif(store_date = '18-09-2016', val, 0)) as [18-09-2016],
sum(iif(store_date = '19-09-2016', val, 0)) as [19-09-2016],
sum(iif(store_date = '20-09-2016', val, 0)) as [20-09-2016]
From t
Group by a, b, c, d;
您应该使用内置日期数据类型将日期存储在数据库中。但是,如果您必须将它们存储为字符串,我强烈建议您使用ISO标准YYYY-MM-DD格式。这很有用,因为您可以将它用于排序和范围比较。
2
如果日期可能在数百个条件聚合数据透视不可行的情况下,请考虑crosstab query,这是在Jet/ACE SQL方言(不在其他RDMS中)中可用的唯一SQL操作。
TRANSFORM SUM(t.val) AS SumOfVal
SELECT t.A, t.B, t.C, t.D
FROM MyTable t
GROUP BY t.A, t.B, t.C, t.D
PIVOT t.Store_date;
注意:任何Access表/查询中都有255列的限制。因此,如果您的表格产生了250多个独特日期,则必须将其分解为多个交叉表。您可以使用PIVOT ... IN
子句相应地过滤日期:
TRANSFORM SUM(t.val) AS SumOfVal
SELECT t.A, t.B, t.C, t.D
FROM MyTable t
GROUP BY t.A, t.B, t.C, t.D
PIVOT t.Store_date IN ('17-09-2016', '18-09-2016', '20-09-2016');
相关问题
- 1. SQL Server聚合日期范围
- 2. SQL在列中选择聚合值
- 3. 日期聚合框架
- 4. 按日期聚合postgresql行
- 5. R:按日期聚合POSIXct?
- 6. Django聚合日期范围
- 7. SQL脚本来聚合列值
- 8. SQL Server将行聚合为列值
- 9. 将日期列表聚合到开始日期和结束日期
- 10. sql server聚合浮点值
- 11. MongoDB聚合框架现在的日期
- 12. 忽略SQL查询中的聚合列
- 13. SQL聚合列问题
- 14. Scala中的聚合列表值
- 15. 选择聚合和日期范围
- 16. 聚合xts对象时保留日期
- 17. Elasticsearch日期范围查询与聚合
- 18. SQL中的聚合函数
- 19. Oracle SQL中的聚合
- 20. MongoDB聚合方面在日期范围内按日期分段
- 21. Mongo日期聚合输出日期对象
- 22. 如果日期按顺序,如何基于日期列合并SQL中的行?
- 23. 如果列中有一个特定值,SQL中的聚合/组表行SQL
- 24. SQL多个日期列,价值桶
- 25. SQL:如何获取聚合列值并填充为新列
- 26. SQL聚合
- 27. SQL聚合组
- 28. DB2 SQL聚合
- 29. Sql:日期的平均值
- 30. 聚合记录在日期维度表上的计数,考虑聚集中的次要日期
感谢您的时间和答复。这工作:) – Hemant