用于查找贷方和借方总和的查询

埃勒姆·阿扎德法尔

我需要一个 SQL 查询来检索 DATE 范围内的 SUM。

这是我的 sudo 代码:

 SELECT da.Debit,da.Credit,
    (SELECT SUM(daa.Debit) FROM Acc.DocumentAccount daa
    INNER JOIN Acc.Document dd ON dd.Id = daa.DocumentId
     WHERE dd.Date BETWEEN '2018-03-21' AND '2018-06-21' AND daa.Id=da.id) SumDebit
     FROM Acc.DocumentAccount da 
    INNER JOIN Acc.Document d ON d.Id = da.DocumentId
    WHERE d.Date BETWEEN '2018-06-21' AND '2019-03-21'

考虑以下示例数据:

CREATE TABLE Document(
    Id INT,
    [Date] date
);


INSERT INTO Document VALUES (1,'2018-01-01');
INSERT INTO Document VALUES (2,'2018-01-02');
INSERT INTO Document VALUES (3,'2018-07-01');
INSERT INTO Document VALUES (4,'2018-07-02');
CREATE TABLE DocumentAccount(
    DocumentId INT,
    Debit INT,
    Credit INT
    );

INSERT INTO DocumentAccount VALUES (1,100,200);
INSERT INTO DocumentAccount VALUES (2,150,300);
INSERT INTO DocumentAccount VALUES (3,150,300);
INSERT INTO DocumentAccount VALUES (4,160,310);
INSERT INTO DocumentAccount VALUES (4,170,320);

CREATE TABLE DocumentAccountDetail
(
    DocumentAccountId INT,
    DetailId INT 
)

我需要这个硬编码数据:

select * from 
(values (250, 500,0,0,480,0,0,0,930,0)) x(RemainDebit, RemainCredit,Q1Debit,Q2Debit,Q3Debit,Q4Debit,Q1Credit,Q2Credit,Q3Credit,Q4Credit)

RemainDebitdebit“2018-03-21”和“2018-06-21”之间的总和

RemainCreditANDcredit之间的总和'2018-03-21''2018-06-21'

Q1Debit在这种情况下是ANDdebit之间的总和,因为我的过滤器范围是 BETWEEN AND Q1Debit 是 0'2018-01-01''2018-03-30''2018-06-21''2019-03-21'

Q2Debit在这种情况下是ANDdebit之间的总和,因为我的过滤器范围是 BETWEEN AND Q1Debit 是 0'2018-04-01''2018-06-30''2018-06-21''2019-03-21'

Q3Debit在这种情况下是ANDdebit之间的总和,因为我的过滤器范围是 BETWEEN AND并且我们在 2018-07 年有 3 个文档,那么 Q1Debit 是 150+160+170=480'2018-06-01''2018-09-30''2018-06-21''2019-03-21'

等等...

根据您的问题,您不需要子查询select子句,您可以JOIN在两个表中使用并在where子句上设置日期范围

Select 
   Sum(debit) as Totledebit,
   Sum(credit) as Totlecredit
From DocumentAccount da 
INNER JOIN Document d on da.DocumentId = d.id
WHERE d.[Date] BETWEEN '2018-03-21' AND '2019-03-21'

SQLFiddle

编辑

我看到你编辑了你的问题,觉得有些逻辑很奇怪。但我相信,您可以尝试使用CASW WHEN表达式和Sum函数来实现您的期望。

Select 
   Sum(CASE WHEN d.[Date]  between '2018-01-01' AND '2018-06-21'  THEN debit ELSE 0 END) as Totledebit,
   Sum(CASE WHEN d.[Date]  BETWEEN '2018-01-01' AND '2018-06-21'  THEN credit ELSE 0 END) as Totlecredit,
   SUM(CASE WHEN d.[Date]  between '2018-01-01' AND '2018-03-30'  AND  d.[Date]  BETWEEN '2018-06-21' AND '2019-03-21' THEN debit ELSE 0 END) as Q1Debit,
   SUM(CASE WHEN d.[Date]  between '2018-04-01' AND '2018-06-30'  AND  d.[Date]  BETWEEN '2018-06-21' AND '2019-03-21'  THEN debit ELSE 0 END) as Q2Debit,
   SUM(CASE WHEN d.[Date]  between '2018-07-01' AND '2018-09-30'  AND  d.[Date]  BETWEEN '2018-06-21' AND '2019-03-21'  THEN debit ELSE 0 END) as Q3Debit,
   SUM(CASE WHEN d.[Date]  between '2018-10-01' AND '2018-12-31'  AND  d.[Date]  BETWEEN '2018-06-21' AND '2019-03-21'  THEN debit ELSE 0 END) as Q4Debit,
   SUM(CASE WHEN d.[Date]  between '2018-01-01' AND '2018-03-30'  AND  d.[Date]  BETWEEN '2018-06-21' AND '2019-03-21'  THEN Credit ELSE 0 END) as Q1Credit,
   SUM(CASE WHEN d.[Date]  between '2018-04-01' AND '2018-06-30'  AND  d.[Date]  BETWEEN '2018-06-21' AND '2019-03-21'  THEN Credit ELSE 0 END) as Q2Credit,
   SUM(CASE WHEN d.[Date]  between '2018-07-01' AND '2018-09-30'  AND  d.[Date]  BETWEEN '2018-06-21' AND '2019-03-21'  THEN Credit ELSE 0 END) as Q3Credit,
   SUM(CASE WHEN d.[Date]  between '2018-10-01' AND '2018-12-31'  AND  d.[Date]  BETWEEN '2018-06-21' AND '2019-03-21'  THEN Credit ELSE 0 END) as Q4Credit
From DocumentAccount da 
INNER JOIN Document d on da.DocumentId = d.id

sqlfiddle:https ://dbfiddle.uk/ ? rdbms = sqlserver_2017 & fiddle = de775aaf8c5e03b25c346dca3bd80e21

情况何时

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询-贷方,借方,余额

来自分类Dev

查找,剪切和插入行以匹配VBA Excel中的借方和贷方值

来自分类Dev

如何制作借方和贷方公式

来自分类Dev

从贷方和借方记录计算余额

来自分类Dev

在枢轴上拆分贷方和借方

来自分类Dev

如何从贷方和借方计算余额?

来自分类Dev

在单行SQL中获得贷方和借方

来自分类Dev

在SQL中使用贷方付款日期和汇总获取借方的付款日期-慢查询

来自分类Dev

如何对会计借方和贷方进行数组验证

来自分类Dev

使用 sql 从交易细节中获取贷方和借方

来自分类Dev

Ms Excel 或 VBA 中借方和贷方条目的匹配

来自分类Dev

SQL联接查询以获取借方余额不等于0的项目名称,借方余额的日期和总和?

来自分类Dev

使用Excel汇总贷方和借方类别列和单个值列

来自分类Dev

使用MySQL在单个表中根据借方和贷方计算余额

来自分类Dev

如何从其他表查看同一表中的贷方和借方名称

来自分类Dev

如何动态地从两个SQL表借方和贷方获得余额

来自分类Dev

如何在plsql中的游标循环中分离借方和贷方

来自分类Dev

复杂的MySQL贷方借方余额

来自分类Dev

贷方 - 借方 + 前一行余额

来自分类Dev

用于检索实体键和值总和的 Room SQL 查询

来自分类Dev

从表格贷方借方列中选择运行余额

来自分类Dev

带有借方贷方余额的SQL Server运行总计

来自分类Dev

MySQL未结余额贷方借方余额

来自分类Dev

SQL Server 2012-Oder按借方,贷方

来自分类Dev

使用选择总和查询来查找总和的最大值和最小值

来自分类Dev

用于添加和查找查询的适当数据结构

来自分类Dev

循环总和查找和多个

来自分类Dev

如何查找从查询生成的列的总和

来自分类Dev

Moment将日期转换为字符串(用于查找查询)和对象(用于聚合查询)。如何和为什么?

Related 相关文章

  1. 1

    SQL查询-贷方,借方,余额

  2. 2

    查找,剪切和插入行以匹配VBA Excel中的借方和贷方值

  3. 3

    如何制作借方和贷方公式

  4. 4

    从贷方和借方记录计算余额

  5. 5

    在枢轴上拆分贷方和借方

  6. 6

    如何从贷方和借方计算余额?

  7. 7

    在单行SQL中获得贷方和借方

  8. 8

    在SQL中使用贷方付款日期和汇总获取借方的付款日期-慢查询

  9. 9

    如何对会计借方和贷方进行数组验证

  10. 10

    使用 sql 从交易细节中获取贷方和借方

  11. 11

    Ms Excel 或 VBA 中借方和贷方条目的匹配

  12. 12

    SQL联接查询以获取借方余额不等于0的项目名称,借方余额的日期和总和?

  13. 13

    使用Excel汇总贷方和借方类别列和单个值列

  14. 14

    使用MySQL在单个表中根据借方和贷方计算余额

  15. 15

    如何从其他表查看同一表中的贷方和借方名称

  16. 16

    如何动态地从两个SQL表借方和贷方获得余额

  17. 17

    如何在plsql中的游标循环中分离借方和贷方

  18. 18

    复杂的MySQL贷方借方余额

  19. 19

    贷方 - 借方 + 前一行余额

  20. 20

    用于检索实体键和值总和的 Room SQL 查询

  21. 21

    从表格贷方借方列中选择运行余额

  22. 22

    带有借方贷方余额的SQL Server运行总计

  23. 23

    MySQL未结余额贷方借方余额

  24. 24

    SQL Server 2012-Oder按借方,贷方

  25. 25

    使用选择总和查询来查找总和的最大值和最小值

  26. 26

    用于添加和查找查询的适当数据结构

  27. 27

    循环总和查找和多个

  28. 28

    如何查找从查询生成的列的总和

  29. 29

    Moment将日期转换为字符串(用于查找查询)和对象(用于聚合查询)。如何和为什么?

热门标签

归档