Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];

Вниз

Помогите с форматом запроса   Найти похожие ветки 

 
Владий   (2003-12-29 18:08) [0]

Суть такова - в зависимости от указанной даты в определенном поле должет отбираться курс на указанную дату или ранее.


var Dstr :string;
begin
Dstr:= DateC.DataBinding.StoredValue;

MainForm.LastCours.SQL.Clear;
MainForm.LastCours.SQL.Add("SELECT Max(Date) AS LastDate FROM Courses "+
"WHERE Courses.Date<=Date("+ Dstr +")");


И получаю ругань, что Date(01.12.03) - неправльно.
Подскажите - что не так делаю?...


 
Johnmen   (2003-12-29 18:12) [1]

Формат даты неверен...
Пользуйся параметрическим заданием даты.


 
Johnmen   (2003-12-29 18:13) [2]

...да, и кстати, что за ф-ия date ?????????????/


 
sniknik   (2003-12-29 18:32) [3]

> ...да, и кстати, что за ф-ия date ?????????????/
текущая дата, только она без параметров.


 
Владий   (2003-12-29 18:44) [4]

А мог и напутать... почему и спрашиваю - не смог понять как мне привести "01.12.03"к формату, который бы сравнен с полем Courses.Date (DateTime)...


 
paul_k   (2003-12-29 18:56) [5]

точнее написать запрос следующим образом
1 where date < DateAdd ("d"; 1;:Mydate)
2 мне кажется что важнее получить id курса а таким запросом его не вытащить.
попробуй так
select * from course
where data = (select max(c.data)
from course c
where data <where date < DateAdd ("d"; 1;:MyCoursedate))
abd cur_id = :MyCurrencyCode
Если не хочеш развлечений с установленными юсерами форматами даты заполняй значения параметров
Если на это наплевать то вполне кушает строки в кавычках
Уж извини коль лишнего наплел. Сам с этими граблями разбирался довольно долго при поиске последнего перед датой курса или котировки


 
sniknik   (2003-12-29 19:03) [6]

> не смог понять как мне привести "01.12.03"к формату,
правильнее вставить параметр

но можно и CDate("12.01.03") и #01/12/2003# и DateSerial(2003, 01, 12) и даже CDate("2003 Январь 12") ....

но этим запросом ты только максимальную дату получиш а не запись с ней, а именно она и нужна судя по всему.
у тебя в этой таблице ключевое поле есть (по автоикременту)? и дата может быть одна или несколько (сколько раз в день можно курс менять)?


 
Владий   (2003-12-30 08:53) [7]

Дата только одна на каждый курс. Все повторные - автоматом удаляются. А курс мне и нужен - максимальный по отношению к дате, указанной в DateC...


 
sniknik   (2003-12-30 10:30) [8]

тогда так можно и без ID
select * from course
where data =
(select max(data) from course where date <= :MyCoursedate)
MyCoursedate параметр, заноси туда именно дату (datetime), можеш заменить на вышеперечисленное (смотри только день с месяцем не перепутай, сдесь это легко, и ошибки не даст)
типа date <= #01/12/2003#
(вместо * можно одно нужное поле MyCourse)


 
Владий   (2003-12-30 10:38) [9]

Что-то меня совсем клинит - чем ближе НГ, тем я тупее...

Как найти последнюю дату я понял:
MainForm.LastCours.SQL.Add("SELECT Max(Date) AS LastDate, * FROM Courses WHERE ((Courses.Date)<=CDate("""+Dstr+"""))");

Но вот как потом отобрать курс по заданной валюте - мне уже не понять... =(((


 
Владий   (2003-12-30 10:42) [10]

О пока думал и писал мне готовый ответ дали... Спасибо огромное!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.008 c
8-93588
SPeller
2003-09-17 07:56
2004.01.29
Что за формат?


3-93345
VID
2004-01-02 03:04
2004.01.29
Серьёзный вопрос: отображение текста Exception после Suspend;


1-93574
mixa
2004-01-17 04:43
2004.01.29
Как изменить дату на компьютере?


1-93539
senya
2004-01-19 13:35
2004.01.29
выдает сообщение


1-93505
frost
2004-01-15 13:18
2004.01.29
Нужен компонент Grid!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский