您好,登錄后才能下訂單哦!
如何將第一個sql語句中的結果作為第二個 sql 的參數值,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
需求:
報表多個數據集,第二個數據集的參數需要引用第一個數據集的結果集作為參數值過濾數據。
解決思路:
因為報表的數據集都是同時計算的,所以不能直接將 ds1 的結果集作為 ds2 的參數值。
所以使用動態參數的方式,利用 query() 函數去解決。
示例說明:將 demo 數據庫表中訂單表通過貨主名稱過濾數據,然后查詢對應的訂單 ID 的 訂單明細。
操作步驟:
1、先新建一個數據集 ds1、設置方法如下圖。并且在報表—參數里面增加參數 arg1。
2。新建 ds2 數據集,
sql 語句為:select * from 訂單明細 where 訂單 ID in (${m})
說明:1. 因為 ${m} 是動態參數的寫法,所以不需要設置數據集的參數。
2. 因為 ds1 過濾的數據可能不是一條,所以我們用 in 的字符串組的方式去過濾 ds2 的數據。
3、設置動態參數。
寫 if 的判斷是為了 ds2 數據集一個默認參數值。不然當參數為空的時候 會報錯。
然后執行報表預覽既可測試效果。
看完上述內容,你們掌握如何將第一個sql語句中的結果作為第二個 sql 的參數值的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。