Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
列datewise中的SQL聚合值_Sql_Ms Access 2010 - Fatal编程技术网

列datewise中的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

下面是我的数据库值

我正在寻找列标题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-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多个唯一的日期,您将不得不拆分为多个交叉表。您可以使用轴相应地筛选日期。。。在第条中: