【问题标题】:sum the same field twice based on a different field Criteria根据不同的字段标准对同一字段求和两次
【发布时间】:2016-12-12 19:54:57
【问题描述】:

这是我在这里的第一个问题。不知道题主说的清楚没有。 在过去的 5 天里,我一直坚持这一点。我在互联网上的任何地方都找不到解决方案。我在 Windows 8 上使用 Microsoft Access 2013。我对 sql 编码有非常基本的了解。

我有一个名为“CustomerOperationTable”的表格
客户姓名|操作日期|借记|信用|
.--------------------|----------|------ --|--------|
客户A...... | 2016 年 1 月 1 日..... | 2000 | 0……|
客户A...... | 2016 年 8 月 1 日..... | 1000 | 0……|
客户A...... | 2016 年 1 月 29 日..... | 0...... | 2500 |
客户A...... | 2016 年 2 月 2 日..... | 2500 | 0……|
客户A...... | 2016 年 3 月 4 日..... | 3000 | 0……|
客户A...... | 2016 年 4 月 4 日..... | 0...... | 4000 |
客户B...... | 2016 年 2 月 3 日..... | 2000 | 0……|
客户B...... | 2016 年 3 月 3 日..... | 0...... | 4000 |
客户B...... | 2016 年 4 月 3 日..... | 3000 | 0……|
客户B...... | 2016 年 5 月 4 日..... | 0...... | 1000 |

The table in a picture made by Excel

它显示每个客户的操作及其特定日期。我正在尝试从查询中生成报告。因此,我需要查询来

  1. 按客户名称对表进行分组
  2. 将 OperationDate 为
  3. 在 OperationDate 介于 2016 年 1 月 2 日和 2016 年 1 月 11 日之间的情况下,“再次”显示借方总和和贷方总和

所以结果将如下表所示

客户名称|借记_OB|信用_OB|借记_CB|信用_CB|
.---------|--------------|------------ ---|--------------|----------------|
客户A........ | 3000....... | 2500………… | 5500....... | 4000…………|
客户B........ | 0.............. | 0................ | 5000....... | 5000…………|

The required Query Result made by excel

我尝试了很多在互联网上找到的解决方案,但没有一个对我有用。 我真的很感谢你的帮助。 很高兴提供完成结果所需的任何信息。

ps:请忽略为格式化而添加的额外“.....”。

【问题讨论】:

    标签: ms-access ms-access-2010 ms-access-2013


    【解决方案1】:

    我的解决方案往往令人不安,但是,嘿!我得到了要求的结果。
    我的查询是:

    SELECT YourTable.CustomerName, 
    Sum(IIf([OperationDate]<=(#1/31/2016#),[Debit],0)) AS Debit_OB, 
    Sum(IIf([OperationDate]<=(#1/31/2016#),[Credit],0)) AS Credit_OB, 
    Sum(IIf([OperationDate]>(#1/31/2016#) And [OperationDate]<(#11/1/2016#),[Debit],0)),
    Sum(IIf([OperationDate]>(#1/31/2016#) And [OperationDate]<(#11/1/2016#),[Credit],0))
    FROM YourTable
    GROUP BY YourTable.CustomerName;
    

    AutoMagically 有效,但性能对于数万条记录来说是个问题。

    【讨论】:

    • 完美运行。非常非常非常感谢。我真的很感谢你的帮助。我已经坚持了很长时间..真的,非常感谢您的帮助,先生^_^
    • @kurrapicazoldik 很高兴为您提供帮助。只需将答案标记为正确即可。
    • 如果您愿意,您的朋友 G. Freecs 会很高兴。祝你有美好的一天。
    猜你喜欢
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多