我怎么能在mysql中获取下一个数据

时间:2013-10-05 11:55:20

标签: mysql

真的不知道你能否,但我需要DATE VENC等于'2013-02-02'。 列date_pay:

的值
1-2013-01-01
2-2013-02-02
3-0000-00-00
4-0000-00-00

这是我的疑问:

   SELECT s.id,
     s.name,
     s.nro_s,
     ts.cat,
     SUM( ts.pryce ) AS deuda, 
     SUM( ts.pryce ) DIV ts.pryce AS c_p,
    date_venc = (select max(date_pay) from c  ) // the date in question
    FROM s
    INNER JOIN c
    INNER JOIN ts
    WHERE s.id =  '123'
    AND c.id =  '123'
    AND c.date_pay =  '0000-00-00'
    AND s.ts = ts.id_ts

对不起我的英语,非常基础。 问候。

1 个答案:

答案 0 :(得分:1)

假设date_venc是DATE可能的解决方案

 select * 
    from s 
    where s.date_venc=
    (select max(cast(SUBSTRING_INDEX(date_pay,'-',-3)as DATE))from c);

also check out sqlfiddle
http://sqlfiddle.com/#!2/64197/1

并且您的查询可能应该修改为,

SELECT s.id,
     s.name,
     s.nro_s,
     ts.cat,
     SUM( ts.pryce ) AS deuda, 
     SUM( ts.pryce ) DIV ts.pryce AS c_p,
    date_venc
    FROM s
    INNER JOIN c
    INNER JOIN ts
    WHERE s.id =  '123'
    AND c.id =  '123'
    AND c.date_pay =  '0000-00-00'
    AND s.ts = ts.id_ts
    AND date_venc = (select max(cast(SUBSTRING_INDEX(date_pay,'-',-3)as DATE)) from c  ) // the date in question