2016-09-08 55 views
0

我是ASP新手。我在創建報告時需要幫助。我有一個SQL查詢有子查詢數據集的RDLC報告

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) 

當我在報告中顯示出來,根據需要而SubjectToper字段顯示空白,則所有其他字段將被填充。有人可以幫助以優雅的方式做到這一點?

+0

如果你在SSMS中運行這個查詢,你會得到正確的結果嗎?當然,參數設置爲實際值。 – owczarek

+0

是的,它在SSMS中給出了正確的結果,但是在RDLC中它顯示了'subjectToper'字段空白。 – Qaisar

回答

0

嘗試使用 Exp1填充該字段。

您正在給整個子查詢別名 SubjectToper,但實際選擇給出的別名 Exp1

結賬this explanation of sub queries。 特別是最後一個例子,他們將一個子查詢分配給一個值。也許這會工作?

你的SQL看起來是這樣的:

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) 

通知我刪除了別名和分配的子查詢SubjectToper。

我希望這可以起作用,否則我恐怕我沒有想法。

+0

「Exp1」未顯示爲數據集中的字段。 – Qaisar

+0

用另一個可以嘗試的想法更新了我的原始評論。 –

+0

同樣的結果:(無論如何謝謝你的時間,希望得到某人的幫助。 – Qaisar