访问 - SQL查询日期明智,选择列汇总值

时间:2016-11-03 04:52:38

标签: sql ms-access ms-access-2016

以下是我的源数据

enter image description here

通过使用以下查询,我可以获得'17 -09-2016'的汇总数据

SQL查询: -

SELECT key_val.A, key_val.B, key_val.C, key_val.D, Sum(IIf(key_val.Store_date=#9/17/2016#,key_val.Val,0)) AS [17-09-2016]
FROM key_val
GROUP BY key_val.A, key_val.B, key_val.C, key_val.D;

但我看起来输出假设看起来像这样。

enter image description here

具体来说=我需要列a,b,c的汇总数据和'17 -09-2016'dateIncel我们将应用sumifs公式来获得所需的输出但是在Access - SQL中我没有得到如何形成查询获得相同的数据。

任何人都可以通过使用Access Query帮助我如何实现上述结果吗?

具体而言=我需要列a,b,c和'17 -09-2016'日期的汇总数据

1 个答案:

答案 0 :(得分:0)

我不确定从哪里得到34位数 - 前两行的总和,即使A,B,C& D是不同的(所以分组不起作用)?

假设您想要将所有其他字段相等的值相加(A,B,C,D& Store_Date):

此查询将为您提供总计,但不会显示您之后的格式:

SELECT      A, B, C, D, SUM(val) As Total, Store_Date
FROM        key_val
WHERE       Store_date = #9/17/2016#
GROUP BY    A,B,C,D, Store_Date

enter image description here

此SQL将为您提供相同的功能,但适用于所有日期(只需删除WHERE子句)。

SELECT      A, B, C, D, SUM(val) As Total, Store_Date
FROM        key_val
GROUP BY    A,B,C,D, Store_Date
ORDER BY    Store_Date

这将给出示例中显示的确切表格:

TRANSFORM   Sum(val) AS SumOfValue
SELECT      A, B, C, D
FROM        key_val
WHERE       Store_date = #9/17/2016#
GROUP BY    A,B,C,D,val
PIVOT       Store_Date

enter image description here

再次,只需删除WHERE子句以列出表中的所有日期: enter image description here