Нубу нужна помощь в расчете возраста - PullRequest
0 голосов
/ 20 января 2010

Этот метод запроса работает:

SELECT xxx 
FROM xxx-table 
WHERE YEAR( CURRENT_DATE( ) ) - YEAR( '1988-10-27' ) 
                        - ( DATE_FORMAT( CURRENT_DATE( ) , '%m-%y' ) < '12-31' ) 
                                  Between 20 and 25 

Но мне нужно что-то вроде этого ...

SELECT YEAR( CURRENT_DATE( ) )
                     - YEAR( '(Select xxx 
                                From xxx-table 
                                where year_id=9 limit 1)-10-27' ) 
                                 - ( DATE_FORMAT( CURRENT_DATE( ) , '%m-%y' )
                           < '12-31' ) 
        Between 20 and 25 

Мне нужно извлечь значение из базы данных и обработать его, используяподзапросы, но это не работает.Я предполагаю, что подзапросы не разрешены в функции.Есть ли способ обойти это?

Заранее спасибо!

1 Ответ

2 голосов
/ 20 января 2010
  1. У вас есть подвыбор в кавычках, поэтому он рассматривается как строка.
  2. Нет необходимости добавлять месяц и день к году, который вы только что выбрали вподзапрос, так как тогда вы запускаете на нем функцию год.

Попробуйте это:

SELECT YEAR( CURRENT_DATE( ) )
                     - (Select xxx
                                From xxx-table
                                where year_id=9 limit 1)
                                 - ( DATE_FORMAT( CURRENT_DATE( ) , '%m-%y' )
                           < '12-31' )
        Between 20 and 25
...