我有一个小问题-我正在学习mysql,但无法解决要解决的问题。
我创建了2个表-第一个具有users (id, name , birth)
-第二个具有transactions ( id , user_id , deposit , withdraw, date)
我有一个简单的查询,应该返回 过去6个月中每个月都有存款和取款的名字。
目前,我在用户中有5个条目,其中为交易生成了虚拟数据。
我尝试过将查询中的内容向上切换,但是没有任何返回超过1个名称。我检查计算器搜索,但信息的数量似乎无穷无尽但我还没有找到我要找的(我的特定问题)的答案。
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');
我希望每个名字都显示每个月的交易
但结果如下
所以,仅仅是他第一次或第一次存款或提取的结果。
答案 0 :(得分:2)
您想在您的存款和提款周围添加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;