如何选择最小月份和年份?

时间:2017-05-14 23:53:17

标签: mysql sql select min

我有这样一张桌子:

box-shadow: 5px 0px 0px rgba(0, 0, 0, 0.3);

问题是我需要选择最旧的未付款的cuota_abono(其中estado = 0)。

例如:

cuota_abono(**cod_abono**, **mes**, **anio**, valor, pago_acumulado, estado)

where:
-cod_abono: VARCHAR (PK)  
-mes: INT (month -- values from 1 to 12) (PK)  
-anio: INT (year) (PK)  
-valor: DECIMAL(10,2)  
-pago_acumulado: DECIMAL(10,2)  
-estado(TINYINT -- 0 or 1)  

鉴于我正在寻找最古老的cuota_abono,我希望得到:

cod_abono mes   anio     valor  pago_acumulado  estado
  Z000     9    2015    315.00      100.00         0
  Z000     5    2016    315.00      315.00         1
  Z000     6    2016    315.00      200.00         0
  Z000     7    2016    315.00        0.00         0
  Z001     5    2016    315.00        0.00         0
  Z001     6    2016    315.00      315.00         1

我尝试了这个查询:

(Z000, 9, 2015, 315.00, 100.00, 0) --> 1° row

但是,我得到了:

select cod_abono, min(mes), min(anio), valor, pago_acumulado, estado
from cuota_abono 
where cod_abono="Z000" and cuota_paga=0

我实际上得到的最小月份是cod_abono =" Z000"和estado = 0,从数字上讲,但它不正确。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

使用order bylimit

select ca.*
from cuota_abono ca
where cod_abono = 'Z000' and cuota_paga = 0
order by anio, mes
limit 1;