2016-09-08 4 views
0

Ich bin neu in ASP. Ich brauche Hilfe beim Erstellen eines Berichts. Ich habe eine SQL-AbfrageRDLC-Bericht mit Unterabfragedatensatz

SELECT StudentID, StudentName, SectionID, ExamID, SubjectID, Subject, Marks, TotalMarks 
, Percentage, Grade, (SELECT MAX(Marks) AS Exp1 
FROM tbl_Result 
WHERE (SectionID = @SectionID) 
    AND (SubjectID = view_StudentResult.SubjectID)) AS SubjectToper 
    FROM view_StudentResult WHERE (StudentID = @StudentID) 

Wenn ich es in dem Bericht angezeigt werden, alle anderen Felder gefüllt werden, wie gewünscht, aber SubjectToper Feld leer gezeigt. Kann jemand dabei elegant helfen?

+0

Wenn Sie diese Abfrage im SSMS ausführen, erhalten Sie das richtige Ergebnis? Mit den Parametern natürlich auf echte Werte eingestellt. – owczarek

+0

Ja, es gibt korrekte Ergebnisse in SSMS, aber in RDLC zeigt es 'subjectToper' Feld leer. – Qaisar

Antwort

0

Versuchen Sie, dieses Feld mit Exp1 zu füllen.

Sie geben der gesamten Unterabfrage den Alias ​​ SubjectToper, aber die tatsächliche Auswahl erhält den Alias ​​ Exp1.

Auschecken this explanation of sub queries. Insbesondere das letzte Beispiel, in dem sie einem Wert eine Unterabfrage zuweisen. Vielleicht wird das funktionieren?

Ihre SQL würde in etwa so aussehen:

SELECT StudentID, StudentName, SectionID, ExamID, SubjectID, Subject, Marks, TotalMarks, Percentage, Grade, 
    SubjectToper = (SELECT MAX(Marks) FROM tbl_Result 
    WHERE (SectionID = @SectionID) AND (SubjectID = view_StudentResult.SubjectID)) 
FROM view_StudentResult WHERE (StudentID = @StudentID) 

bemerke ich die Aliase entfernt und die Unterabfrage SubjectToper zugeordnet.

Ich hoffe, das funktioniert, sonst habe ich Angst, dass ich keine Ideen mehr habe.

+0

'Exp1 'wird nicht als Feld im Dataset angezeigt. – Qaisar

+0

Mein ursprünglicher Kommentar wurde mit einer anderen Idee aktualisiert, die Sie ausprobieren können. –

+0

Immer noch dasselbe Ergebnis :(sowieso danke für Ihre Zeit. Hoffe, Hilfe von jemandem zu bekommen. – Qaisar