2009-06-02 36 views
34

Nhanh câu hỏi, tôi có bảng saumysql chọn nhóm tiền theo ngày

+-------------+---------------------+ 
| total  | o_date    | 
+-------------+---------------------+ 
|   35 | 01-11-2009 19:32:44 | 
|  41.5 | 01-12-2009 22:33:49 | 
|  61.5 | 01-23-2009 22:08:24 | 
|   66 | 02-01-2009 22:33:57 | 
|  22.22 | 02-01-2009 22:37:34 | 
|  29.84 | 04-20-2009 15:23:49 | 
+-------------+---------------------+ 

Tôi muốn thêm lên tổng số cho mỗi tháng và nhóm tổng theo tháng. Vì vậy, ví dụ: Jan-> 138 Feb-> 88.2 Apr-> 29.84

Bất kỳ manh mối nào về nó. Cảm ơn

Trả lời

61

Giải pháp này sẽ cung cấp cho bạn tên tháng như một cột của resultset của bạn, tiếp theo là tổng số theo yêu cầu.

SELECT MONTHNAME(o_date), SUM(total) 
FROM theTable 
GROUP BY YEAR(o_date), MONTH(o_date) 
+0

Bạn cũng có thể muốn thêm năm đến danh sách lựa chọn -> NĂM (o_date) –

+1

Hoặc, để có được nó ở định dạng bạn chỉ định, bạn có thể thực hiện SELECT CONCAT (MONTHNAME (o_date), '->', SUM (tổng cộng)) –

+0

Rất hữu ích! và u có thể thêm cột vào nhóm theo số –

5
select year(o_date), month(o_date), sum(total) 
from table 
group by year(o_date), month(o_date); 
+0

Đó là giả sử bạn muốn tháng trong những năm khác nhau nhóm riêng rẽ –

2
SELECT SUM(total) 
FROM table 
GROUP BY MONTH(o_date) 
3

Như tôi nhớ lại từ một cuộc sống MySQL qua một truy vấn như

SELECT LEFT(o_date, 7) month, SUM(total) FROM TABLE group BY month

đang sử dụng chỉ số trên các lĩnh vực o_date (mà tiếc là tôi sẽ không đảm bảo cho YEAR()MONTH()).

Bạn sẽ phải định dạng lĩnh vực month dù và điều này sẽ rất có thể không được lập chỉ mục trên bất kỳ hệ thống cơ sở dữ liệu khác ...

0

Hãy thử Group BY, như thế này: công việc

select count(A_id) As Tid,Day(CrDate) from Ap Group By Day(CrDate) 
0

Yea cho tôi theo cách này:

SELECT MONTHNAME(date), SUM(`in`) as SOMA, date FROM transactions GROUP BY YEAR(date), MONTH(date) 

Nhưng tôi chỉ cần hiển thị kết quả của năm nay (2014) làm cách nào tôi có thể làm điều đó?

+1

Vui lòng đặt câu hỏi riêng nếu bạn gặp sự cố – Illidanek

2

Get tháng, năm dữ liệu khôn ngoan từ cơ sở dữ liệu MySQL:

SELECT MONTHNAME(o_date), YEAR(o_date), SUM(total) 
FROM the_table 
GROUP BY YEAR(date), MONTH(date)