Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Запрос к бд paradox через BDE. Временной интервал


Автор: tikitiki 7.9.2005, 19:08
Помогите, пожалуйста. Запрос доконал.
Пытаюсь из БД paradox через BDE получить данные, попадающие в промежуток
времени(в запросе для определённости -1.1.5 12:0 и 31.12.5 12:0, хотя я сделал, чтоб эти
datetime можно было менять). Datetwo и Dateone-относятся к одной таблице и, соответственно,
означают конец и начало регистрации клиентов, имеют тип DateTime.
Мне нужно отследить любые (и частичные) попадания регистрации клиентов в данный промежуток
и для этих попаданий сделать вычисления. Numcost-стоимость услуги за день.
Ошибки получаются в Summa1, при чём в отдельных записях, и большие ошибки.
В других записях в Summa1 нет ошибок.Ниже- это один запрос.

SELECT Numnmb,
Numcost*(c.Datetwo-c.Dateone)
as Summa1
FROM client c,number n
WHERE
(c.Dateone>="1.1.5 12:0" AND c.Datetwo<="31.12.5 12:0")
and c.Numnmb=n.Numnmb
GROUP BY Numnmb

UNION
SELECT Numnmb,
Numcost*("31.12.5 12:0"-c.Dateone)
FROM client c,number n
WHERE
(c.Dateone<="31.12.5 12:0" AND c.Datetwo>"31.12.5 12:0")
and c.Numnmb=n.Numnmb
GROUP BY Numnmb

UNION
SELECT Numnmb,
Numcost*(c.Datetwo-"1.1.5 12:0")
FROM client c,number n
WHERE
(c.Dateone<"1.1.5 12:0" AND c.Datetwo>="1.1.5 12:0")
and c.Numnmb=n.Numnmb
GROUP BY Numnmb



Автор: Alex 7.9.2005, 22:44
http://forum.vingrad.ru/index.php?showtopic=58037&hl=god

Автор: tikitiki 8.9.2005, 15:14
С функцией DateValue не ясно. Я её почему-то в help не вижу. Её можно видимо только для Access использовать. И в том топике про время нет. Но всё-равно, спасибо.

Автор: Alex 8.9.2005, 17:03
Код

where k.datezakl BETWEEN :speriod and :fperiod

Автор: tikitiki 9.9.2005, 16:15
k.datezakl, speriod и fperiod должны быть типа DateTime. Я должен был сам
догадаться. Спасибо большое, Alex.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)