我正在使用MS SQL Report Builder 3.0爲SQL Reporting Services生成報告。我有一個數據集,其中包括AppointmentDate,PatientID和InsuranceCarrier列。我想了解在特定時間範圍內訪問的DISTINCT患者的數量(開始約會日期到結束約會日期)。在詢問中患者應該多次出席的唯一時間是如果他們在重複訪問時有不同的保險承運人。SQL Reporting Services,對不在DISTINCT SELECT語句中的字段進行篩選?
如果我執行下面的查詢:
SELECT DISTINCT AppointmentDate, PaientID, InsuranceCarrier
FROM Encounters
WHERE AppointmentDate >= @beginningofdaterange
AND AppointmentDate <= @endofdaterange
然後我得到的是,在該日期範圍內訪問的每個病人和保險公司的名單。不幸的是,由於每個AppointmentDate也是不同的,所以患者會在每個單獨的約會日期得到重複。例如,如果患者X在指定的時間範圍內顯示兩次,則會顯示兩個約會。
如果我從我的SELECT語句中刪除AppointmentDate,然後在數據集屬性在Report Builder 3.0中我不能再過濾器基礎上,AppointmentDate表達。我可以直接在T-SQL語句的WHERE子句中進行篩選,但這意味着我無法使用用戶輸入的運行時報表參數。這是一個問題,因爲我基於用戶在運行報表時選擇的報表參數進行篩選。他們輸入起始AppointmentDate,並將「18個月前」參數計算爲開始和結束AppointmentDates進行過濾。
那麼,如何包括AppointmentDate,這樣我可以用它進行過濾,但使其正常DISTINCTifies我的數據不包括在我的SELECT DISTINCT。
這是一個很好的問題,我個人很感興趣學習正確的答案(或任何數量的工作建議)。但是,關於應用程序(報告工具),更具體地說,關於如何使用該應用程序(而不是其安裝,配置等),我相信這個問題並不屬於DBA.SE,它是關於與DBMS的服務器端相關的事情,以及關於DBMS具有的任何內置客戶端工具的配置。因此,我正在標記將此遷移到[so]。 –