我想創建一個報表來提供來自SQL Server數據庫的數據。我有3個表格我感興趣,客戶,推薦,任命。客戶可以有1. *推介,推薦可以有0. *約會預約。AVG(DATEDIFF(d,Tabl1.date1,MIN(Table2.date1)))T-SQL
在我的報告中,我想展示從接受推薦到第一次約會的平均時間。
我在我的存儲過程中嘗試上述,但收到「無法對包含聚合或子查詢的表達式執行聚合函數」。
有沒有一種很好的方式來讓這個工作沒有你能想到的子查詢?
編輯下面的粗糙表結構。
客戶 ClientID的INT的IIdentity(PK) 用名字VARCHAR(50) 姓VARCHAR(50) DOB DATETIME
推薦 ReferralID INT IDENTITY(PK) ClientID的INT(FK) ReferralRequestReceivedDate DATETIME OrgaisationAreaId INT(fk)
約會 AppintmentID INT IDENTITY(PK) ReferralId INT(FK) AppointmentDate DATETIME AttendanceTypeId INT(FK) AppointmentTypeID INT(FK)
AttendanceTypes AttendanceTypeID INT IDENTITY(PK) 名稱VARCHAR(50)
AppointmentTypes AppointmentTypeID INT IDENTITY(PK) 名稱VARCHAR(50)
OrganisationArea OrgaisationAreaId INT IDENTITY(PK) 名稱VARCHAR(50)
我現有的PROC具有計數按年齡和出勤鍵入如下出席約會......
SELECT OA.Name,
COUNT(CASE WHEN AppointmentTypeId IN(1,3)
AND AppointmentDate BETWEEN '27 Jan 2013' AND '13 Apr 2013'
THEN AppointmentId END) AS AppsBooked,
AVG(DATEDIFF(d, ReferralRequestReceivedDate, MIN(A.AppointmentDate)))
AS AvgAllocationWaitTime
FROM OrganisationAreas OA
LEFT OUTER JOIN Clients C
ON OA.OrganisationAreaId = C.OrganisationAreaId
LEFT OUTER JOIN IaptReferrals R
ON C.ClientId = R.ClientId
LEFT OUTER JOIN IaptAppointments A
ON R.IaptReferralId = A.Referral_IaptReferralId
GROUP BY OA.OrganisationAreaId, OA.Name
是什麼這些表的結構?什麼鍵鏈接在一起? – 2013-04-22 20:26:43
爲什麼你想這個工作沒有子查詢? – 2013-04-23 05:35:26