2013-05-08 2 views
0

У меня есть таблица, содержащая клиенты, дату привязки (исходная дата продажи), частота звонков (7,14 или 21 день). Мне нужно использовать конкретную дату и частоту привязки клиентов для создания и добавления будущих записей вызовов в таблицу до определенной даты окончания. Я использую SQL 2008Создание будущих вызовов Rercodes SQL

+0

Какой КТРА вы уже пробовали? У вас есть таблица номеров удобно? – HABO

ответ

0

Это выглядит как начало:

declare @Customers as Table (CustomerId Int Identity, AnchorDate Date, CallFrequency Int); 
insert into @Customers (AnchorDate, CallFrequency) values 
    ('20130101', 7), ('20130102', 14), ('20130103', 21), 
    ('20130104', 7), ('20130105', 14), ('20130106', 21), 
    ('20130107', 7), ('20130108', 14), ('20130109', 21); 
select * 
    from @Customers 

declare @EndDate as Date = '20131231'; 
declare @Today as Date = SysDateTime(); 

with FutureCalls as (
    select CustomerId, DateAdd(day, (DateDiff(day, AnchorDate, @Today)/CallFrequency + 1) * CallFrequency, AnchorDate) as CallDate, CallFrequency 
    from @Customers 
    union all 
    select CustomerId, DateAdd(day, CallFrequency, CallDate), CallFrequency 
    from FutureCalls 
    where DateAdd(day, CallFrequency, CallDate) <= @EndDate 
) 
    select * 
    from FutureCalls 
    order by CallDate, CustomerId 
    option (MaxRecursion 0) 
+0

Это было исключение из-за того, что мне нужно было всего лишь несколькими хитростями здесь и там. –

+0

Рад помочь. Вы можете принять ответ, если он соответствует вашим потребностям, щелкнув галочку рядом с ним. См. [Принятие ответа] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work). В [FAQ] имеется много другой информации (http://meta.stackexchange.com/questions/7931/faq-for-stack-exchange-sites). – HABO

Смежные вопросы