Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Вычисление по данным изменения тарифов  [new]
БИКон
Member

Откуда:
Сообщений: 5
SQL-server 2000


Имеется таблица 1
IDT DATEbeg DATEend SUM
1 10.10.2008 15.11.2008
2 01.05.2008 25.05.2008



Таблица изменения тарифа

NOM DATE1 Tarif
1 01.01.2008 1.1
2 04.03.2008 2.2
3 05.05.2008 3.3
4 15.10.2008 4.4
5 01.11.2008 5.5

нужно вычислить сумму в первой таблице (количество дней умножить на свой тариф) с учетом изменения тарифа по таблице 2.

Приму с благодарностью любые варианты алгоритма без использования курсора, или с использованием курсора.
29 июн 09, 06:13    [7353280]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление по данным изменения тарифов  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
И что же надо суммировать?

А вообще, для этой задачи нужна таблица с непрерывной последовательностью дат
или с непрерывной последовательностью целых чисел (из них очень просто получить
последовательность дат)
Вместо таблицы можно, конечно, использовать derived table

Напишите CREATE TABLE для таблиц, а то непонятно, какого типа поля.
29 июн 09, 09:03    [7353401]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление по данным изменения тарифов  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
iap
И что же надо суммировать?
Перечитал первый пост - этот вопрос отпал.
29 июн 09, 09:04    [7353404]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление по данным изменения тарифов  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Не проверял:
SELECT T.IDT, T.DATEbeg, T.DATEend, SUM(A.Tarif)[SUM]
FROM T JOIN
(
 SELECT T.IDT,(SELECT TOP 1 Tarif.Tarif FROM Tarif WHERE Tarif.DATE1<=DATEADD(DAY,V.number,T.DATEbeg) ORDER BY T.DATEbeg DESC)
 FROM T JOIN master.dbo.spt_values V ON V.type='P' AND V.number<=DATEDIFF(DAY,T.DATEbeg,T.DATEend)
) A(IDT,Tarif)
ON T.IDT=A.IDT
GROUP BY T.IDT, T.DATEbeg, T.DATEend;
29 июн 09, 09:18    [7353432]     Ответить | Цитировать Сообщить модератору
 Re: Вычисление по данным изменения тарифов  [new]
БИКон
Member

Откуда:
Сообщений: 5
iap,

Идея понятна. Спасибо. Будем пробовать.
29 июн 09, 10:52    [7353719]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить