Я создаю базу данных, которая отслеживает контакт с клиентом, целевая дата контакта для первоначального контакта составляет 90 рабочих дней с первой даты, когда пользователь звонит нам, я создал функцию для обработки этого расчета.
У меня есть таблица журнала контактов с клиентами, в которую вводятся все контакты.
У меня настроен почтовый сценарий в mssql2005, который отправляет список в ящик электронной почты менеджера, когда контакт не был установлен илижурнал был введен после 90-дневного периода.
Я борюсь с sql, чтобы определить, если контакт не существует или он существует, но нарушен, пожалуйста, посмотрите на мой скрипт ниже:
Я попытался сделать это какнасколько это возможно для чтения.
DECLARE @tmp INT
SELECT m.id AS
[Case ID],
CONVERT(VARCHAR, userdbjhv25.dbo.Calcdate(oc.firstdate), 103) AS
[Target Contact Date]
FROM userdbjhv25.dbo.USER v,
userdbjhv25.dbo.customer o,
userdbjhv25.dbo.maincase m,
userdbjhv25.dbo.usercase vc,
userdbjhv25.dbo.customercase oc,
contactlist r
WHERE m.id = vc.caseid
AND v.userid = vc.userid
AND m.id = oc.caseid
AND o.customerid = oc.customerid
AND userdbjhv25.dbo.Calcdate(oc.firstdate) <= Getdate()
AND ( @tmp IS NOT NULL
AND NOT EXISTS (SELECT 1
FROM contactlist r1
WHERE r1.caseno = vc.usercase
AND r1.conlogtype = 'Initial Contact')
OR (( @tmp IN(SELECT 1
FROM contactlist r2,
usercase vc2,
USER v2,
customercase oc2,
maincase m2,
customer o2
WHERE m2.id = oc2.caseid
AND o2.customerid = oc2.customerid
AND r2.conlogtype = 'Initial Contact'
AND r2.caseno = vc.usercase
AND
userdbjhv25.dbo.Calcdate(oc2.firstdate) < r2.postdate
)
)) )