【发布时间】:2019-01-24 11:48:11
【问题描述】:
我有 2 张桌子:
1.tran_test : (id, amount, currency(Currency_Name), date_1)
2.cur_test: (id, currency, date_2, price(amount In USD))
考虑到 cur.test 表中的某些日期缺失,因此您需要使用最后可用的日期来计算结果,如何获取每天的总销售额?
我编写了一个计算总和的查询,但它不包括费率缺失的日期。
如何计算缺课天数?
SELECT date_1, SUM(amount*c.price) AS sum_by_day
FROM tran_test AS t
INNER JOIN cur_test AS c
ON t.currency = c.currency AND date_1 = date_2
GROUP BY date_1;
我不需要只生成日期。我需要使用表格中可用的数据来计算金额。如果缺少某些日期,我需要采用货币汇率可用的最后一个可用日期。例如 - tran.test 表有 9 月 28 日的交易,但未提供这一天的货币汇率,所以我需要采用最后可用的汇率
相似数据样本
INSERT INTO tran_test (amount, currency, date_1) VALUES
(1000,'RUB','2018-09-01'),
(15,'USD','2018-09-01'),
(10,'EUR','2018-09-01'),
INSERT INTO cur_test (name,date_2, price) VALUES
('RUB','2018-01-09',0.02),
('USD','2018-01-09',1),
输出应该是这样的 日期 - 日期的总金额 2018-02-21 - 2128
完整代码在这里 - https://www.db-fiddle.com/f/v4SHW9XgtgyehbhanQFRx5/2 实际数据稍微复杂一些,包括 UNIX 格式的日期
【问题讨论】:
-
我不需要只生成日期。我需要使用表格中可用的数据来计算金额。如果缺少某些日期,我需要采用货币汇率可用的最后一个可用日期。例如 - tran.test 表有 9 月 28 日的交易,但没有提供这一天的汇率,所以我需要采用最后可用的汇率。
-
您能否展示一些示例输入和所需的结果
-
把它放在问题中。
标签: mysql