2016-01-18 12 views
0

我已經遍佈互聯網找到答案,但我找不到任何。 (我可能會問是否有誤?) 我有一個表,看起來像這樣: enter image description here 我一直在使用查詢:MySQL組相同的標題(行)和金錢(行),但保留個別時間戳排序

SELECT title, date, SUM(money) 
FROM payments 
WHERE username = '$username_n' and type=0 
GROUP BY title 

它的伎倆,這組相同的標題和總結自己值

enter image description here

但正如你所看到的,它只是給了我一次約會,我希望能夠做一個滑塊,在那裏我可以排序從日期的日期,但我不能如果它爲每個分組標題創建只有一個日期那麼做。

我如何創建多個日期,但仍然擺脫重複標題?

+1

'GROUP BY title,date' – Daan

+0

請顯示預期結果。你想要每個標題,每個標題和日期,每個標題和日期時間還是其他內容的結果行?這將有助於看到樣本結果。 –

+0

我做了一個思維導圖來解釋我想要完成的事情 http://i.imgur.com/Mlgwo9A.png @ThorstenKettner –

回答

0

試試這個:

SELECT title, date, SUM(money) FROM payments 
WHERE username = '$username_n' and type=0 GROUP BY title, date(`date`); 
+0

然後我會如何輸出它可以排序? –

+0

在'GROUP BY標題,日期('date')後面加上'order by date'' –

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不允許不屬於分組或集合的字段,我認爲這非常好。

+0

我明白你的意思了,但我不認爲這會成爲我想得到的結果。 http://i.imgur.com/Mlgwo9A.png @bdifferent這就是我的意思:v –

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 
相關問題