[直連]參數為空選擇所有值

1. 概述

1.1 預期效果

[直連]文字過濾組件傳參中介紹了在直連資料庫時,可透過過濾組件,使用參數動態控制 BI 取數的資料量。在上述文檔中,當文字過濾組件為空時,資料表中無資料,那麼如何實現當過濾組件為空時,顯示資料表中所有資料呢?

例如門店性質下拉框中不選擇參數值時能夠查詢出資料表中的全部值呢,如下圖所示:

10.png

1.2 實現思路

  • 新增 SQL 資料集,並在 SQL 語句中配置「店性質」參數,且 SQL 中需要增加 parameter 語句來保證參數為空時選擇全部。

  • 新增 SQL 資料集,不配置參數,主要是為了獲取完整的「店性質」資料,實現過濾組件下拉框能選擇所有的店性質。

  • 儀表板中使用「文字下拉過濾組件」綁定參數,並將不配置參數的資料集下的「店性質」欄位作為過濾組件下拉選項。

注:目前僅有文字過濾組件和日期類過濾組件提供綁定參數功能。  

2. 操作步驟

2.1 建立帶參數的 SQL 資料集

1)若同時擁有「直連資料」和「抽取資料」功能,則需要在資料列表中切換為「直連資料」,然後選擇「公共資料」,點選進入分組下業務包,點選「建立資料集>SQL 資料集」,如下圖所示:

注:只有 資料處理使用者 可以建立 SQL 資料集。

1.png

2)輸入帶參數的SQL語句:select *  from 門店銷售數據統計 where 1=1 <parameter> and 店性質 in ('${店性質}' ) </parameter>,命名該業務包為門店表(有參數)」。點選「確定」儲存該 SQL 資料集。

注:此處也可使用SQL:select * from NEW_DIAN where 1=1 ${if(len(店性質) == 0,"","and 店性質 in ('"   店性質   "')")} 

2.png

SQL 語句說明:

  • 「where 1=1」表示條件永真,防止沒有之後的參數條件時,where多出而導致出錯

  • <parameter> and 店性質 in ('${店性質}' ) </parameter>為新增的店性質參數,該新增的「parameter」用於在中間參數為空時,獲取店性質的所有值。

2.2 建立不帶參數的 SQL 資料集

此步驟主要是為了獲取完整的「店性質」資料,實現下拉框能選擇所有的店性質。

1)建立一個不新增參數的 SQL 資料集select *  from 門店銷售數據統計,命名為門店表(無參數),如下圖所示:

3.png

2.3 新增明細表

使用有參數的門店表製作一個組件,圖表型別選擇「明細表」後,拖入欄位,如下圖所示:

4.png

2.4 設定文字過濾組件

1)新增儀表板,將製作的明細表拖進儀表板中。並新增文字下拉過濾組件,如下圖所示:

5.png

2)勾選「綁定參數」,在設定中綁定SQL參數「店性質」,如下圖所示:

6.png

3)因為想要在過濾組件中能夠選擇店性質的分類,因此將不帶參數的門店表下的「店性質」欄位拖入該過濾組件中,如下圖所示:

7.png

2.5 效果查看

可以看到,文字過濾組件中不選擇任何值,即參數為空時,該店性質欄位顯示為所有值,包括自有店、管理店及其他店的資料,如下圖所示:

8.png

在點選門店性質過濾組件選擇「管理店」時,下面的明細表透過參數帶入 SQL 執行實現了管理店的過濾效果,如下圖所示:

9.png


附件列表


主题: 製作儀表板
已经是第一篇
已经是最后一篇
  • 有帮助
  • 没帮助
  • 只是浏览
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙