将 2 SQL 个日期范围的结果输出到一个输出中
Outputting the results of 2 SQL date ranges into one output
多年来我一直试图对此进行排序,现在可能想得太多了,所以希望你能帮助我。
我有一笔销售交易 table。其中,是我想按帐户代码查看并并排放置的每笔交易的日期列表,但要使用日期范围
比较帐户 2019 年支出与其 2020 年支出
到目前为止,我只能得到其中之一,不能同时得到。
我看过嵌套选择、并集等等,但我想不起来了,但我一无所获。
我已经接近了,我想用这段代码:
SELECT inv_account,
(SELECT SUM(basevalue)) from salestrans WHERE inv_invoicedate BETWEEN '2019-04-01' AND '2020-03-31'),
(SELECT SUM(basevalue)from salestrans WHERE inv_invoicedate BETWEEN '2020-04-01' AND '2021-03-31')
FROM salestrans
GROUP BY inv_account
这是每个帐户的总数,而不是单个帐户的总数。现在我需要按个人帐户对其进行过滤,我假设它位于括号中的 SELECT 中的某个位置,但不确定如何执行此操作。
使用条件聚合:
SELECT inv_account,
SUM(CASE WHEN inv_invoicedate BETWEEN '2019-04-01' AND '2020-03-31' THEN basevalue ELSE 0 END) total1,
SUM(CASE WHEN inv_invoicedate BETWEEN '2020-04-01' AND '2021-03-31' THEN basevalue ELSE 0 END) total2
FROM salestrans
GROUP BY inv_account
多年来我一直试图对此进行排序,现在可能想得太多了,所以希望你能帮助我。
我有一笔销售交易 table。其中,是我想按帐户代码查看并并排放置的每笔交易的日期列表,但要使用日期范围
比较帐户 2019 年支出与其 2020 年支出到目前为止,我只能得到其中之一,不能同时得到。
我看过嵌套选择、并集等等,但我想不起来了,但我一无所获。
我已经接近了,我想用这段代码:
SELECT inv_account,
(SELECT SUM(basevalue)) from salestrans WHERE inv_invoicedate BETWEEN '2019-04-01' AND '2020-03-31'),
(SELECT SUM(basevalue)from salestrans WHERE inv_invoicedate BETWEEN '2020-04-01' AND '2021-03-31')
FROM salestrans
GROUP BY inv_account
这是每个帐户的总数,而不是单个帐户的总数。现在我需要按个人帐户对其进行过滤,我假设它位于括号中的 SELECT 中的某个位置,但不确定如何执行此操作。
使用条件聚合:
SELECT inv_account,
SUM(CASE WHEN inv_invoicedate BETWEEN '2019-04-01' AND '2020-03-31' THEN basevalue ELSE 0 END) total1,
SUM(CASE WHEN inv_invoicedate BETWEEN '2020-04-01' AND '2021-03-31' THEN basevalue ELSE 0 END) total2
FROM salestrans
GROUP BY inv_account