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