列datewise中的SQL聚合值
下面是我的数据库值 我正在寻找列标题datewise中的值之和,我有MS Access数据库。有人能帮我建立SQL查询吗? 请查找以下预期输出列datewise中的SQL聚合值,sql,ms-access-2010,Sql,Ms Access 2010,下面是我的数据库值 我正在寻找列标题datewise中的值之和,我有MS Access数据库。有人能帮我建立SQL查询吗? 请查找以下预期输出 如果知道日期集,则可以使用条件聚合。在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-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格式。这很有用,因为您可以使用它进行排序和范围比较。如果您知道日期集,则可以使用条件聚合。在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格式。这是有用的,因为您可以使用它来排序和范围比较。< P>在条件日期可能在几百个条件聚合支点不可行的情况下,考虑A,在JET/ACE SQL语言中可用的唯一SQL操作,而不是在其他RDMS中。
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;
注意:任何访问表/查询中都有255列的限制。因此,如果您的表产生250多个唯一的日期,您将不得不拆分为多个交叉表。您可以使用轴相应地筛选日期。。。在第条中:
在条件日期可能在几百个条件聚合支点不可行的情况下,考虑A,在JET/ACE SQL语言中可用的唯一SQL操作,而不是在其他RDMS中。
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;
注意:任何访问表/查询中都有255列的限制。因此,如果您的表产生250多个唯一的日期,您将不得不拆分为多个交叉表。您可以使用轴相应地筛选日期。。。在第条中: