簡體   English   中英

按年和月分組,但僅顯示月和年實際mysql

[英]Group by year and month but only present the month and year actual mysql

我有下表。

select * from `consumo`;

輸出:

+----+------------+-----------------+---------------------+
| id | cedula     | registroConsumo | fecha-hora          |
+----+------------+-----------------+---------------------+
|  1 | 0931111111 |              20 | 2016-08-17 13:52:48 |
|  2 | 0931111111 |              25 | 2016-08-17 13:53:01 |
|  3 | 0311111111 |              27 | 2016-08-17 13:54:23 |
|  4 | 0311111111 |              10 | 2016-08-17 13:54:26 |
|  5 | 0311111111 |              12 | 2016-08-17 13:54:29 |
|  6 | 0311111111 |              14 | 2016-08-17 13:54:34 |
|  7 | 0311111111 |              19 | 2016-08-17 13:54:38 |
|  8 | 0311111111 |             190 | 2016-08-17 13:54:44 |
|  9 | 0311111111 |             195 | 2016-08-17 13:54:48 |
| 10 | 0912223333 |              19 | 2016-08-17 13:54:54 |
| 11 | 0111111111 |              20 | 2016-08-17 13:54:59 |
| 12 | 0111111111 |              23 | 2016-08-17 13:55:03 |
| 13 | 0111111111 |              27 | 2016-08-17 13:55:07 |
| 14 | 0111111111 |              35 | 2016-08-17 13:55:11 |
| 15 | 0111111111 |              10 | 2016-08-17 13:55:14 |
| 16 | 0111111111 |              35 | 2016-09-04 12:10:01 |
| 17 | 0111111111 |             330 | 2016-09-04 12:10:06 |
+----+------------+-----------------+---------------------+

我想按年份和月份分組,但實際上只顯示月份和年份的結果都在Mysql中。

我這樣做:

select SUM(`registroConsumo`) from `consumo` 
GROUP BY YEAR(`fecha-hora`),MONTH(`fecha-hora`) 
HAVING YEAR(`fecha-hora`) = SELECT EXTRACT (YEAR FROM (SELECT NOW()))
AND    MONTH(`fecha-hora`) = SELECT EXTRACT (MONTH FROM (SELECT NOW())) ;

我收到此錯誤:

錯誤1064(42000):您的SQL語法有錯誤; 檢查與您的MySQL服務器版本對應的手冊以獲取正確的語法,以在第1行的SELECT EXTRACT (YEAR FROM (SELECT NOW())) AND MONTH(`fecha-hora`) = SELECT EXTRA附近使用

having子句中出現的子查詢中,您有幾個缺少的括號。

但是您可以更務實地處理此問題,並使用order bylimit返回您獲得的最新數據:

select   YEAR(`fecha-hora`),
         MONTH(`fecha-hora`)
         SUM(`registroConsumo`) 
from     `consumo` 
group by YEAR(`fecha-hora`),
         MONTH(`fecha-hora`)
order by YEAR(`fecha-hora`) DESC,
         MONTH(`fecha-hora`) DESC
limit 1

或者,如果確實需要與當前年份和月份匹配:

select   YEAR(`fecha-hora`),
         MONTH(`fecha-hora`)
         SUM(`registroConsumo`) 
from     `consumo` 
where    YEAR(`fecha-hora`) = YEAR(NOW())
and      MONTH(`fecha-hora`) = MONTH(NOW())
group by YEAR(`fecha-hora`),
         MONTH(`fecha-hora`)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM