我的任务是计算客户坚持使用我们的平均时间长度。(特别是从他们成为客户之日到他们最后一次下订单的时间。)
我不是 100% 确定我这样做是否正确,但我的想法是收集我们将客户输入数据库的日期,然后前往订单表并获取他们最近的订单日期,将它们转储到临时表,然后计算出这两个日期之间的时间长度,然后根据该数字计算平均值。
(我还必须做一些其他摇摆不定的事情,但这是让我很生气的事情)这样做的最终目标是能够说“平均而言,我们的客户会坚持使用我们 4 年零 3 个月。” (或任何数据显示的内容。)
SELECT * INTO #AvgTable
FROM(
SELECT DISTINCT (c.CustNumber) AS [CustomerNumber]
, COALESCE(convert( VARCHAR(10),c.OrgEnrollDate,101),'') AS [StartDate]
, COALESCE(CONVERT(VARCHAR(10),MAX(co.OrderDate),101),'')AS [EndDate]
,DATEDIFF(DD,c.OrgEnrollDate, co.OrderDate) as [LengthOfTime]
FROM dbo.Customer c
JOIN dbo.CustomerOrder co ON c.ID = co.CustomerID
WHERE c.Archived = 0
AND co.Archived =0
AND c.OrgEnrollDate IS NOT NULL
AND co.OrderDate IS NOT NULL
GROUP BY c.CustNumber
, co.OrderDate 2
)
--This is where I start falling apart
Select AVG[LengthofTime]
From #AvgTable