![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос о истории значеий [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]только перебором. чудес не бывает