我有一張桌子,上面有學生的姓名、他們的 ID 和一點來表示他們是否通過了某個科目。最終,我想按個人通過的 1 個報告/查詢中的所有主題進行分組。我不知道如何撰寫腳本,所以我只是做了一個select *并選擇嘗試使用水晶報告。
這是我的資料。
| ID | 姓名 | 通過數學 | 通過科學 | 通過法語 |
|---|---|---|---|---|
| 1 | 彼得 | 1 | 0 | 1 |
| 2 | 約翰 | 1 | 1 | 1 |
| 3 | 凱西 | 0 | 1 | 1 |
這是預期的結果,或者我最終試圖在報告中展示的結果。基本上,在我的水晶報告中,我會有一節
數學
彼得
科學
約翰
凱西
法語
彼得
約翰
凱西
我試過什么
現在,我還沒有弄清楚如何在查詢中執行此操作,所以我所做的是,按照此鏈接的答案,我嘗試有條件地渲染一個 section。
我的問題是,這種作業,但它回傳的結果是。
通過數學
彼得
通過科學
約翰
通過數學
約翰
基本上,不是將所有通過數學的人分組在一起,而是給他們單獨的行。因此,John 和 Peter 都創建了一個名為“passMath”的部分,我希望將它們組合在一起。我在水晶報告中所做的是創建一個部分>部分專家并添加{usp_student.passMath}= false到公式區域,我希望它可以抑制所有未通過數學的記錄。到目前為止,它的作業率為 50%,我希望它能夠將它們全部分組。
感謝我能否獲得有關此查詢的幫助或修復水晶報告的方法。
uj5u.com熱心網友回復:
我不確定這是否是您所追求的,但我懷疑它可能會有所幫助:
with subjects as (
select * from (values('Math'), ('Science'), ('French'))s(Subject)
)
select Subject, Name
from Subjects s
join t on
(s.subject = 'Math' and t.passMath = 1) or
(s.subject = 'Science' and t.passScience = 1) or
(s.subject = 'French' and t.passFrench = 1)
order by Subject;
uj5u.com熱心網友回復:
如果您不想訴諸 Stu 建議的笛卡爾積型別,則有兩種選擇:
- 使用 UNION 陳述句連接 3 個場景的傳遞案例。
或者
- 在 Crystal 中,只需插入 3 個子報表,每個子報表顯示學生通過了一個目標科目。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/523359.html
