首页 > 解决方案 > 使用日期范围和分组数据加入两个表

问题描述

我希望通过根据日期过滤掉单个表中两个表中的数据,然后按两列对数据进行分组。例如:- 用户将提供 account_id、start_date 和 end_date,我将从这两个表中过滤数据。

这是向内表


ID    Account_Id  Brand   Quality Sheets  Weight  Inward_Date
 1        1           B1    Q1      10    10       01-05-2019
 2        1           B1    Q2       5     5       02-05-2019
 3        2           B1    Q1       9     9       03-05-2019
 4        1           B1    Q1       7     7       04-05-2019
 5        1           B2    Q1       2     2       05-05-2019
 6        2           B2    Q2       8     8       06-05-2019
 7        1           B1    Q2       4     4       07-05-2019
 8        1           B1    Q1       4     4       08-05-2019

这是外向表


ID    Account_Id  Brand   Quality Sheets  Outward_date
 1       1            B1       Q1     5   02-05-2019
 2       1            B1       Q1     2   03-05-2019
 3       2            B1       Q1     1   03-05-2019
 4       1            B1       Q1     2   04-05-2019
 5       1            B1       Q1     2   05-05-2019

现在我需要一个查询,它将根据 Date 和 Account_ID 过滤数据并结合 Brand 和 Quality 列并添加如下所示的表格

最终输出


Accnt_ID Brand Quality    Opening_Sheets Total_In Total_Out
1        B1      Q1             10         7         9
1        B1      Q2              0         9       NULL
1        B2      Q1              0         2       NULL

输出表的说明:- 我想通过将品牌和质量分组在一起来汇总 Inward 和 Outward 表的数据,对特定时期内向内和向外的表求和。对于向内但不向外的表,然后在 Total_Out 列中将为NULL。对于 Opening_sheets 列 - 它表示在 start_date 之前系统中可用的工作表。我想这应该就像在 start_date 之前获取所有向内的表格并减去它会总计出表格。

标签: sqldjangodatabasepostgresql

解决方案


推荐阅读