Рассчитать скорость изменения в SSRS
Мне нужно рассчитать скорость изменения употребления наркотиков между двумя датами, используя SSRS. Я привык к использованию SQL, поэтому мне сложно работать с SSRS.
У меня есть следующая информация:
Avg_Alcohol_Use_Month Avg_Drug_Use_Month
First_interview_Date 1.63% 1.34%
1/30/2017
Followup_interview_date 2.58% .80%
6/30/2017
Как мне создать отчет, который отражает скорость изменения употребления наркотиков между двумя датами? Мне нужно создать отчет в SSRS, но я не знаю, как написать запрос в SSRS, который будет отражать скорость изменения.
Я не могу создать запрос в SQL, потому что у меня есть доступ к данным только через SSRS.
1 ответ
(Этот пример для SQL Server)
Вы можете сделать это в SQL, если сохраните исходные результаты в виде таблицы или временной структуры данных. Если вы выполняете подзапрос, вы можете вычесть ставки линии на скорость предыдущей строки. Это по дате, поэтому вы выбрали МАКС (дата) для данного пациента / врача, что бы это ни было (первичный ключ?). В этом случае я использовал "PatientID" для идентификации пациента. Увидеть ниже:
--Assume your values are saved in a table or other temp table
DECLARE @tmp TABLE (PatientID int, Interview_Date date, Avg_Alcohol_Use_Month decimal (4,2), Avg_Drug_Use_Month decimal (4,2))
INSERT INTO @tmp
VALUES
(1, '2017-01-30', 1.63, 1.34)
,(2, '2017-06-30', 2.58, 0.80)
,(1, '2017-03-01', 1.54, 1.23)
,(1, '2017-07-02', 3.21, 0.20)
,(2, '2017-08-23', 2.10, 4.52)
SELECT PatientID
,Interview_Date
,Avg_Alcohol_Use_Month
,Avg_Drug_Use_Month
,Avg_Alcohol_Use_Month
-
(SELECT Avg_Alcohol_Use_Month
FROM @tmp T2
WHERE T2.PatientID = T1.PatientID
AND T2.Interview_Date = (SELECT MAX(Interview_Date)
FROM @tmp T3
WHERE T3.Interview_Date < T1.Interview_Date
AND T3.PatientID = T1.PatientID
-- or whatever PK that makes the row unique for the patient.
)
) AS [Alcohol Use Rate change]
,Avg_Drug_Use_Month
-
(SELECT Avg_Drug_Use_Month
FROM @tmp T2
WHERE T2.PatientID = T1.PatientID
AND T2.Interview_Date = (SELECT MAX(Interview_Date)
FROM @tmp T3
WHERE T3.Interview_Date < T1.Interview_Date
AND T3.PatientID = T1.PatientID
-- or whatever PK makes the row unique for the patient.
)
) AS [Drug Use Rate change]
FROM @tmp T1
ORDER BY PatientID, Interview_Date
Используйте такой запрос как набор данных для SSRS.