將第一個 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 資料集一個預設引數值。不然當引數為空的時候 會報錯。
然後執行報表預覽既可測試效果。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2671154/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL語句中聚合函式忽略NULL值的總結SQL函式Null
- MyBatis的使用三(在sql語句中傳值)MyBatisSQL
- Python 提取出SQL語句中Where的值的方法PythonSQL
- sql語句中JOIN ON 的使用SQL
- sql語句中#{}和${}的區別SQL
- shell前一個命令結果作為下一個命令引數
- SQL語句中not in 和not exist的區別SQL
- SQL語句中exists和in的區別SQL
- MyBatis在SQL語句中取list的大小MyBatisSQL
- 如何跑通第一個 SQL 作業SQL
- SQL語句中不同的連線JOIN及SQL中join的各種用法SQL
- PB帶引數帶結果集的動態SQL查詢SQL
- 接收使用者輸入的3個整數,並將它們的最大值作為結果輸出
- 如何自動填充SQL語句中的公共欄位SQL
- Oracle sql 語句中帶有特殊的字元處理OracleSQL字元
- SQL語句中的AND和OR執行順序問題SQL
- laravel中whereIn方法中使用SQL作為引數的途徑LaravelSQL
- List分頁(SQL引數化2100個 )SQL
- [20180928]避免表示式在sql語句中.txtSQL
- 表的連線是指在一個SQL語句中通過表與表之間的關連SQL
- 單個SQL語句的10046 traceSQL
- 【YashanDB知識庫】繫結引數,同一個sql多個執行計劃的問題SQL
- 對 “C語言指標變數作為函式引數” 的個人理解C語言指標變數函式
- GO語言————6.7 將函式作為引數Go函式
- LLM取代的第一個程式語言竟是SQL?網友吵翻天SQL
- ; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: ORA-00909: 引數個數無效SQLExceptionJavaError
- sql語句中where一定要放在group by 之前SQL
- 請求引數為物件,mybatis的sql寫法物件MyBatisSQL
- 資料庫SQL語句中關於explain關鍵字的用法資料庫SQLAI
- SQL語句將查詢結果插入到另一張表中SQL
- SQL語句替換查詢結果的的寫法舉例SQL
- Sql Server 的引數化查詢SQLServer
- Python中將函式作為另一個函式的引數傳入並呼叫Python函式
- 子元件獲取父元件的值,將這個值作為狀態值儲存元件
- 將使用回撥函式作為引數的函式改造為返回 Promise 的一個具體例子函式Promise
- JS forEach()第二個引數JS
- [20181029]避免表示式在sql語句中(10g).txtSQL
- 使用PL/SQL找到兩個表中的相似值FKSQL