【发布时间】:2019-02-02 12:48:37
【问题描述】:
我正在学习 mysql,并且很难理解更复杂的输出 - 主要是逻辑部分......我有一个简单的数据库,其中包含 2 个表和 1 个连接 - 设计在这里https://prnt.sc/mfmwji
我需要创建一个报告,仅显示过去 6 个月的负数状态(因此仅当人处于负数状态时)的每日余额。
我整理了一个查询,当它们为负时只显示差异,但它不会将它们“连接”到它们之前的行......只能显示撤回可以这么说。 我玩过查询,但这是我想出的“最好”的东西......我试图用 sum 函数来包装差异,但这只是总结了整个事情并且不会返回每日差异。
SELECT
T1.name AS Name,
T2.withdraw - T2.deposit AS Difference,
DATE_FORMAT(T2.date, '%Y-%m-%d') AS Date
FROM
users AS T1
INNER JOIN transactions AS T2
ON
T1.id = T2.user_id
WHERE
(T2.withdraw - T2.deposit) > 0
查询返回这个输出(它只是结果的一部分,因为我得到了 100 个结果) http://prntscr.com/mfn0xf
Pearl Champlin 的存款和取款让您明白: http://prntscr.com/mfn15a
我已尝试检查有关 SO 的其他问题,但它们通常指向其他问题,而不是针对我的问题。
提前感谢您认为我应该查看的任何信息!
【问题讨论】:
-
我们需要示例数据和预期结果(没有图像)如果没有,很难阅读查询或给出可靠的 cmets/answers.. 我建议您阅读 Why should I provide an MCVE for what seems to me to be a very simple SQL query?
-
你用的是哪个版本的mysql?
-
db-fiddle.com/f/nRXgyePFoF8VPax3NxMQNp/0 我听过@RaymondNijland 并添加了一些内容,因此你们可以更深入地了解查询并尝试更详细的内容。 MySQL是5.6.34版本
-
你能不能只为
Shanel Torp做一个更小的SQL fiddle(例如)和基于该数据的预期结果,你可以使用tool 来生成格式化文本。这样我们可以验证我们的查询,我们可以查看和使用的数据更少。 -
我只在她的交易中添加了 Shanel Torp - 不明白如何使用您链接的工具将 2 个表格放入其中,所以我再次使用小提琴 db-fiddle.com/f/uK5bDWYPDVx5UdyFKyzPr/0