Цитата:
Сообщение от tadalex
Вариант учета регистрации начала действия тарифа и его окончания в таблицу я ввел изначально, но пока не соображу, так же это все же будет работать?
|
А в чем проблема?
Когда ты делаешь начисление, то тебе надо найти некоторый тариф на некоторую услугу. Допустим, нам известны: ID посвтащика услуги, ID услуги и дата. Тогда такой запрос вернет тебе нужный тариф:
Код:
SELECT Price
FROM Prices
WHERE
SupplyerID = :SupplyerID AND
ServiceID = :ServiceID AND
StartDt <= :CurrentDt AND
(EndDt >= :CurrentDt OR EndDt IS NULL)
ORDER BY
UpdateTS DESC
LIMIT 1
Если сервер не поддерживает LIMIT, то можно просто получить весь список и просто взять первую запись (если она есть).
ЗЫ. LIMIT есть в Oracle и Postgree. В MS SQL Server это TOP, укащываемый, если не ошибаюсь, сразу после слова SELECT.