Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вопрос о истории значеий [D6, dBase, FoxPro, Paradox]


avgur ©   (2004-04-21 14:34:00) 

Помогите новичку... Как сделать чтобы значения прирасчете брались на конкретную дату или дату большей укзанной в справочнике.
Смысл в чем: необходимо организовать историю значений как в 1С. Чтобы с 1 по 14 бралось значение одно с 15 по 17 бралось значение другое, а начиная с 18 и далее значение 3.
метобом перебора значений через if очень долго. Может кто подскажет???


LordOfSilence   (2004-04-21 17:16:00) [1]

Извини, синтаксис LocalSQL ни бельмеса не помню...

select ДатаПоездки, ЗначениеТарифа
from _ТаблицаПоездок, _ТаблицаТарифов
where _ТаблицаТарифов.ДатаТарифа=(select Max(ДатаТарифа) from _ТаблицаТарифов where ДатаПоездки>=ДатаТарифа)


Хозяин, а может быть этот колор? (с)


dim-   (2004-04-21 17:10:00) [2]

а зачем изобретать велосипед если 1С это уже придумала, делай в ней


Johnmen   (2004-04-21 17:04:00) [3]

SELECT *
FROM Table
WHERE DataTarif=(SELECT MAX(DataTarif)
                FROM Table
                WHERE DataTarif <= [интересующая дата])


avgur   (2004-04-21 16:35:00) [4]

вот-вот, для локал скюэл топ не работает к сожалению, а на сколько это облегчило бы задачу в разных случаях


LordOfSilence   (2004-04-21 16:27:00) [5]

Ах, блин, не заметил, что это LocalSQL...


LordOfSilence   (2004-04-21 16:26:00) [6]

Что вроде подобного не подойдет?

select ДатаПоездки, (select top 1 ЗначениеТарифа from ТаблицаТарифов where ДатаПоездки>=ДатаТарифа order by ДатаТарифа desc) as СуммаТарифа from ТаблицаПоездок


Курдль   (2004-04-21 15:54:00) [7]


> Fay ©   (21.04.04 15:36) [6]
> Хрень какая-то... Нужна одна запись.

Мой досужий пример - не хрень какая-то, а просто пример "ни о чем". Как, впрочем, и условие автора.
Или вы в нем "усмотрели нить" - какую дату из какой таблицы брать и по каким точным правилам?


desha   (2004-04-21 15:53:00) [8]

select tarif
from table
where DataTarif <= :Date
order by dataTarif descending

Первая запись- твоя.


avgur   (2004-04-21 15:52:00) [9]


> Johnmen ©   (21.04.04 15:44) [8]
> Какой тариф задействуется, если за заданный период было
> более нуля обновлений тарифа ?


не понял вопоса...


avgur   (2004-04-21 15:48:00) [10]


> Курдль ©   (21.04.04 15:25) [5]
>
> select PAY_SUMMA from SC_PAYMENTS
> where PAY_DATE between (:BEG_DATE, :END_DATE)


это я и сам получил только вот когда бегаешь по записям через if для сравнения дат много времени уходит, а записей много. Вот я у Вас и спрашиваю господа присяжные заседатели как можно форсировать этот процесс, ведь 1с-ники как то додумались. У них это быстро работает. (относительно)


Johnmen   (2004-04-21 15:44:00) [11]

Какой тариф задействуется, если за заданный период было более нуля обновлений тарифа ?


avgur   (2004-04-21 15:40:00) [12]

Цель:
Есть автомобиль у него тариф на использования допустим на 1 января 2004г. 22 грн./час, с 15 января 2004г. тариф поменялся на 21,75 грн/час, а с 19 января 2004г. 23 грн.

Автомобиль эксплуатировался месяц
1.01.04 12 часов 45 минут * тариф 22 грн. получаем ...
2.01.04 12 часов 45 минут * тариф 22 грн. получаем ...
3.01.04 ...
15.01.04 7 часов 10 минут * тариф 21,75 = ...
...
19.01.04 2 часа 05 минут * тариф 23 грн. = ...
и т.д.

справочник тарифов:
TID       : Autoincremetn;
DataTarif : Data;
GosNum    : String;
Tariff    : Float;


Fay   (2004-04-21 15:36:00) [13]

Курдль ©   (21.04.04 15:25) [5]
Хрень какая-то... Нужна одна запись.


Курдль   (2004-04-21 15:25:00) [14]


select PAY_SUMMA from SC_PAYMENTS
where PAY_DATE between (:BEG_DATE, :END_DATE)

А почитать - в книжках :( Или это не Ваш стиль?


Johnmen   (2004-04-21 15:16:00) [15]

>Если можно и не трудно по подробней пожалуйста...

Ты первый. Начинай со структуры таблицы и желаемых результатов...


avgur   (2004-04-21 15:08:00) [16]


> Курдль ©   (21.04.04 14:54) [2]
> 1. Напр. методом последовательного приближения :)
> 2. заставьте работать сервер одним запросом ???

Если можно и не трудно по подробней пожалуйста...
или где почитать плз...


Курдль   (2004-04-21 14:54:00) [17]


> метобом перебора значений через if очень долго. Может кто
> подскажет

Много всяких алгоритмов.
Напр. методом последовательного приближения :)
А ващщета, раз форум по базам - заставьте работать сервер одним запросом и не парьте себе мОзги, как оно у него там "перебором" или "подвыподвертом" выбирается...


Fay   (2004-04-21 14:35:00) [18]

только перебором. чудес не бывает


Наверх

Титульная страница Поиск, карта сайта Написать письмо