mysql - 如何修复这个简单的 MySQL 查询
问题描述
我有一个小问题 - 我正在学习 mysql,但我无法解决我要解决的问题。我创建了 2 个表 - 第一个有users (id, name , birth)
- 第二个有transactions ( id , user_id , deposit , withdraw, date)
我有一个简单的查询,应该返回过去 6 个月每月存款和取款的姓名。
目前,我在用户中有 5 个条目,其中包含为交易生成的虚拟数据。
我试图在查询中稍微改变一下,但没有返回超过 1 个名称。我检查了 stackoverflow 搜索,但信息量似乎无穷无尽,但我还没有找到我正在寻找的答案(针对我的具体问题)。
SELECT
T1.name,
T2.deposit,
T2.withdraw,
DATE_FORMAT(T2.date, '%M-%Y') transactions
FROM
users AS T1
INNER JOIN transactions AS T2
ON
T1.id = T2.user_id
WHERE
DATE_FORMAT(T2.date, '%m') BETWEEN '06' AND '12'
GROUP BY
DATE_FORMAT(t2.date, '%m');
我希望每个名称都能显示每个月的交易
但结果如下
所以只是他可以找到当月的第一次存款或取款的结果,而且只是名字。
解决方案
您想Sum()
在您的存款和取款周围添加一个。还将名称添加到 GROUP BY:
SELECT
T1.name,
Sum(T2.deposit),
Sum(T2.withdraw),
DATE_FORMAT(T2.date, '%M-%Y') transactions
FROM
users AS T1
INNER JOIN transactions AS T2
ON
T1.id = T2.user_id
WHERE
DATE_FORMAT(T2.date, '%m') BETWEEN '06' AND '12'
GROUP BY
DATE_FORMAT(t2.date, '%m'), t1.name;
推荐阅读
- django-rest-framework - django Swagger 无法添加参数说明
- python - 定义仅在 ast.While 对象中使用的访问方法
- typescript - 为什么 tsc 报告 SomeType 没有索引签名?
- javascript - 以顺时针方向循环一组数字
- spring - 当 Spring Security 中的会话超时时,SavedRequestAwareAuthenticationSuccessHandler 无法按预期工作
- ffmpeg - mp4s 的 ffmpeg concat 在连接处跳转并暂停几秒钟
- javascript - React 点击事件处理最佳实践
- dompdf - 在 Laravel DOMPDF 0.8.3 / Laravel 5.8 中导入自定义字体
- deep-learning - 如何向人工智能教授游戏规则?
- ios - 使用 swift 检查 iPhone 状态栏中哪些通知处于活动状态