我有一个带有专栏的表' Rechnungnr'和'日期'
示例2016 / 2004,2016 / 201,2016 / 100,2015 / 12,2016 / 2131
我需要最后一个最高的数字。这里 - >二百三十一分之二千〇一十六。
SELECT * FROM TABLE Where YEAR(Date) = '2016' ORDER BY length(`Rechnungnr`) DESC LIMIT 1
但那不起作用:(
Greetz,Malte
答案 0 :(得分:0)
尝试使用由backtics包围的列名称日期
SELECT * FROM TABLE Where YEAR(`Date`) = '2016' ORDER BY length(`Rechnungnr`) DESC LIMIT 1
答案 1 :(得分:0)
使用char_length()和rechnungnr值的组合以这种方式获得最大值:
SELECT * FROM TABLE
Where YEAR(Date) = 2016 ORDER BY char_length(`Rechnungnr`) DESC, `Rechnungnr` DESC LIMIT 1
char_length()将按Rechnungnr
字段中的字符数对结果进行排序,然后在相同长的字符串中,我们按字段本身的值排序。
答案 2 :(得分:0)
使用您现有的数据集(如果我正确理解了架构),您可以尝试这样的事情来获取一年中的某一天,将其转换为int然后对其进行排序:
SELECT *, CAST(RIGHT(LENGTH(`Rechnungnr`) - (INSTR(`Rechnungnr`, '/') + 1)) AS UNSIGNED) AS `DayOfYear` FROM TABLE Where YEAR(Date) = '2016' ORDER BY `DayOfYear` DESC LIMIT 1