1

Ich habe einen SSRS-Matrix-Bericht, den ich in Report Builder 3.0 erstellt habe. Die Daten sehen gut aus, aber die Zeilen sind nicht ausgerichtet. Jede Zelle befindet sich in einer separaten Reihe, sodass der Bericht schwer zu lesen und zu lesen ist. HierZellen, die nicht in jeder Zeile ausgerichtet sind

ist ein Screenshot:

Sample Report

Hier ist Beispieldaten, dass der Bericht basiert auf:

SELECT 's111' AS sessionID, 'q1' AS questionID, 'q1_a1' AS answerID, 
'True/False : The Sun orbits the Earth.' AS stem, 
'True' AS SelectedItem, 'False' AS UnselectedItem 
UNION ALL 
SELECT 's111', 'q2', 'q2_a1', 
'MCQ: What planet is the largest gas giant in our solar system?', 
'Jupiter', 'Moon' 
UNION ALL 
SELECT 's111', 'q2', 'q2_a2', 
'MCQ: What planet is the largest gas giant in our solar system?', 
'Jupiter', 'Venus' 
UNION ALL 
SELECT 's111', 'q2', 'q2_a3', 
'MCQ: What planet is the largest gas giant in our solar system?', 
'Jupiter', 'Vulcan' 
UNION ALL 
SELECT 's111', 'q2', 'q2_a4', 
'MCQ: What planet is the largest gas giant in our solar system?', 
'Jupiter', 'Pluto' 
UNION ALL 
SELECT 's111', 'q3', 'q3_a1', 
'MCQ/Many: Pick the items that best describe why Mars does NOT currently support complex life.', 
'God hates Martians', 'Intense radiation from the Sun' 
UNION ALL 
SELECT 's111', 'q3', 'q3_a2', 
'MCQ/Many: Pick the items that best describe why Mars does NOT currently support complex life.', 
'God hates Martians', 'Very dry, little to no liquid water' 
UNION ALL 
SELECT 's111', 'q3', 'q3_a3', 
'MCQ/Many: Pick the items that best describe why Mars does NOT currently support complex life.', 
'God hates Martians', 'very cold' 
UNION ALL 
SELECT 's111', 'q3', 'q3_a4', 
'MCQ/Many: Pick the items that best describe why Mars does NOT currently support complex life.', 
'God hates Martians', 'Intense radiation from an ancient nuclear holocaust' 

Gibt es eine Möglichkeit, die Zeilen zu beheben?

Danke!

Antwort

2

Okay, also ich vermute, das ist eine Art von Test, wo Sie die verfügbaren Antworten abfragen? Wenn ja, liegt Ihr Problem bei den Joins in Ihrer Abfrage. Das Problem besteht darin, dass die Abfrage jedes Mal, wenn sie die Antworten für eine bestimmte Frage zurückgibt, Nullen für die anderen Fragen findet. Meine Vermutung wäre, dass Ihr SQL etwas wie folgt aussieht:

Select s.student_name 
    , q.question_txt 
    , a.answer_txt 

From student_table s 
    left outer join question_table q 
     on --something 
    left outer join answer_table a 
     on q.question_id = a.question_id 

Wenn Sie Querverweise auf die Frage ID mit der Antwort-ID, die Sie Rückkehr Nullen in jeder Zeile, außer wenn die Frage-ID übereinstimmt, die Antworten für diese Frage zurückgegeben.

Es gibt zwei grundlegende Lösungen, eine einfache und eine komplexe. Wenn Sie eine automatisch inkrementierende Zahl für die Antwort innerhalb einer Frage haben (dh Antwort 1 hat immer den Wert 1, Antwort 2 hat immer den Wert 2), dann können Sie diese Zahl einfach zu Ihrer Abfrage hinzufügen und haben Zeilengruppen für den Namen des Kindes und die automatisch inkrementierende Nummer.

Wenn Sie nicht über eine solche Nummer in Ihrer Daten bereits haben, können Sie künstlich erstellen, indem Sie das folgende Feld, um Ihren Datensatz hinzufügen und eine Gruppe zu Ihrem tablix für sie hinzufügen:

row_number() over (partition by question_id order by question_id, answer_id) as row 

Wenn Ich bin hier völlig von der Basis ausgegangen, lass mich über einen Kommentar wissen und ich werde mein Bestes geben, um zu helfen.

+0

Ich habe eine Abfrage für Beispieldaten hinzugefügt – SkyeBoniwell

+1

Danke für die Beispieldaten, aber was ich vorschlage ist das Problem ist mit der Art und Weise, die Sie beitreten und, dies, die Daten abrufen. Daher sind Beispieldaten weniger als hilfreich, da wir bereits die Daten in Ihrem Bild sehen konnten. –