我已经在互联网上寻找答案,但我找不到任何答案。 (我可能会错误地问?) 我有一个看起来像这样的表: 我一直在使用查询:
SELECT title, date, SUM(money)
FROM payments
WHERE username = '$username_n' and type=0
GROUP BY title
它可以解决问题,并将相同的标题分组并总结其值
但正如你所看到的,它只给了我一个日期,我希望能够制作一个滑块,我可以从日期中对日期进行排序,但如果它只创建一个,我就不能这样做每个分组标题的日期。
如何创建多个日期,但仍然可以删除重复的标题?
答案 0 :(得分:0)
试试这个:
SELECT title, date, SUM(money) FROM payments
WHERE username = '$username_n' and type=0 GROUP BY title, date(`date`);
答案 1 :(得分:0)
字段列表中的字段没有聚合或是分组的一部分,这有点奇怪。正如您之前使用日期字段:
SELECT title, date, SUM(money) FROM payments
WHERE username = '$username_n' and type=0
GROUP BY title
按标题分组,汇总金钱领域,一切都很好。日期字段不是分组或聚合的一部分。 mysql正在做什么,它只会获取聚合中日期字段的字段值。这就是为什么你只在结果中看到一个日期值。正如代码和尚解释的那样,你需要在分组中使用日期字段。在MS SQL Server中,您的查询实际上会出错,因为MS SQL Server不允许不属于分组或聚合的字段,我认为这非常好。
答案 2 :(得分:0)
下面的查询将以逗号分隔的方式给出日期值。您可以使用PHP /服务器端代码通过逗号分解它们并创建列表/数组并将其返回到客户端,即JavaScript。使用javascript对列表进行排序。
SELECT title, group_concat(date) as `dates`, SUM(money)
FROM payments
WHERE username = '$username_n' and type=0
GROUP BY title