0

Ich muss die Rate der Änderung der Drogenkonsum zwischen zwei Daten mit SSRS berechnen. Ich bin gewohnt, SQL zu verwenden, deshalb habe ich eine schwierige Zeit mit SSRS.Berechnen Sie die Änderungsrate in SSRS

Ich habe folgende Informationen:

       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 

Wie erstelle ich einen Bericht, der die Änderungsrate der Drogenkonsum zwischen zwei Daten widerspiegelt? Ich muss den Bericht in SSRS erstellen, aber ich weiß nicht, wie eine Abfrage in SSRS geschrieben wird, die die Änderungsrate widerspiegelt.

Ich kann die Abfrage in SQL nicht erstellen, da ich nur über SSRS auf die Daten zugreifen kann.

+0

Können Sie Ihre Frage klären? Ich bin mir nicht sicher, worauf Sie hoffen. (Ausdruckshilfe, berechnetes Feld, Dataset) –

+0

Wenn Sie mit SQL besser vertraut sind, ist es wahrscheinlich einfacher, die Arbeit in Ihrem Dataset zu erledigen, da dies reines SQL ist. SSRS-Ausdrücke arbeiten mit den Daten, die vom Dataset bereitgestellt werden. Dies sind wiederum (normalerweise) Daten, die von einer Abfrage abgerufen oder von SQL Server gespeichert werden. –

Antwort

0

(Dieses Beispiel ist für SQL Server)

Sie können es in SQL tun, wenn Sie die ersten Ergebnisse in einer Tabelle oder eine temporäre Datenstruktur speichern. Wenn Sie eine Unterabfrage durchführen, können Sie die Raten der Leitung durch die Rate der vorherigen Leitung subtrahieren. Dies ist nach Datum, also haben Sie den MAX (Datum) für den gegebenen Patienten/Arzt gewählt, was auch immer das ist (Primärschlüssel?). In diesem Fall habe ich "PatientID" verwendet, um den Patienten zu identifizieren. Siehe unten:

--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 

Verwenden Sie eine solche Abfrage als Dataset für SSRS.