|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Находжение разницы годов в SQL запросе
Здравствуйте! Подскажите пожалуйста.
Задача: Посчитать кол-во записей в БД (Paradox), где все мужчины старше 60 лет. SQL-запрос такой: begin Код: view plaincopy to clipboardprint? mQ.Close; mQ.SQL.Clear; mQ.SQL.Add('SELECT COUNT(*) FROM Base.db WHERE (SEX LIKE "Мужской") AND (...[подсчет разницы в годах между двумя датами]...)'); mQ.Open; Одна дата берется из базы (поле BIRTHDAY), вторая - текущая дата. Как мне это реализовать в запросе??? (ну никак не придумаю) P.S. Наиболее оптимальный вариант с фун-ей YearsBetween!!! Но нак её в запрос впихнуть ????? Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#2
|
||||
|
||||
Вопрос решен!!! Альтернативным вариантом.
Но если идеи будут - пишите! Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#3
|
|||
|
|||
DATEDIFF(year,DataRojd,Getdate())
|
#4
|
||||
|
||||
Цитата:
Не катит!!! Если можно, покажи на примере Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#5
|
|||
|
|||
Цитата:
|
#6
|
||||
|
||||
У меня при данной операции выкидывает ошибку:
Capability not supported Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#7
|
|||
|
|||
Цитата:
А YurkE звинения не учел шо бд Paradox по привычке SQL пихаю. в Парадоксе увы не рулю, но думаю шо шот наподобие должно быть и там. |
#8
|
|||
|
|||
Параметры:
Params.ParamByName('CurrentDate').Value := Year*10000+Month*100*Day; В запросе: AND (:CurrentDate-(Year(Birthday)*10000+Month(Birthday)*100+Day(Birt hday)>600000) |
#9
|
||||
|
||||
Спасибо!
Я обошелся более простым способом. Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#10
|
||||
|
||||
Ребята, подскажите!
Имеется 3 поля F1, F2, F3 (тип DATE) и поле R (тип DATE). (Paradox) Мне нужно просумировать кол-во дней от последнего поля F до поля R по всей базе. Для одного поля запрос такой: SELECT SUM(F3 - R) FROM Base.db Но прикол в том, что заранее неизвестно какое поле F1 или F2 или F3 окажется последним имеющим дату. (т.е. поле F3 как и F2 может оказатся пустым)... Как мне реализовать это условие в запросе ??? Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#11
|
|||
|
|||
Может что-то типа этого:
select if(f1>f2,if(f1>f3,sum(f1-r), sum(f3-r)), if(f2>f3,sum(f2-r),sum(f3-r))) FROM base.db; ? У меня подобная инструкция отлично сработала, хотя немного и громоздкая.... |
#12
|
||||
|
||||
Цитата:
Я это вот так решил!!! Но все равно Спасибо Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|