私は、顧客の連絡先を追跡するデータベースを作成しています。最初の連絡先のターゲット連絡先は、この計算を処理する関数を作成しました。データベース内のユーザーごとに行の値が存在することを確認する
私はすべての連絡先がに入力されているカスタマーコンタクトログテーブルを持っています。
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
)
)))
http://www.dpriver.com/pp/sqlformat.htmはあなたの友人です。 –
ああ、素晴らしいリンク!感謝ジェームス –