FineBI版本
|
功能變動
|
6.0
|
-
|
6.0.16
|
過濾組件綁定參數功能優化
1)參數顯示優化:
2)
參數綁定優化
|
本文提供
直連資料
使用 SQL 資料集參數的 SQL 寫法範例。
注:不同資料庫的寫法不同,本文僅提供參考範例。
1.3 注意事項
1)where 1=1 表示條件永真,防止沒有之後的參數條件時,where 多出而導致出錯。
2)<parameter> and </parameter>該新增的parameter用於在中間參數為空時,獲取所有值。 可用於「正文參數」「數值參數」和「日期參數」。
3)資料準備 sql 表參數中,年月參數、年季度參數、年月區間參數中的月份和季度參數類型為正文類型,取值為(1~12)和(1~4),不可以寫成 01 這種格式的,否則儀表板中的元件讀出資料會不正確。
日期類型
|
SQL 範例
|
推薦設定的參數類型
|
年份
|
SELECT * FROM 互網路連結存取資料 WHERE YE
A
R(銷售日期)='${年份}'
|
正文
|
年月
|
SELECT * FROM 互網路連結存取資料 WHERE YE
A
R(銷售日期)='${年份}' and month(銷售日期)='${月份}'
|
正文
|
日期
|
SELECT * FROM 互網路連結存取資料 WHERE CAST(統計日期 as varchar) in ('${日期}')
|
日期
|
日期區間
|
SELECT * FROM 互網路連結存取資料 WHERE 統計日期 between '${開始日期}' and '${結束日期}'
|
日期
|
年月區間
|
SELECT * FROM 互網路連結存取資料 WHERE format(統計日期,'yyyyMM') >=concat('${開始年份}',case when '${開始月份}'>9 then '${開始月份}'else concat(0,'${開始月份}') end ) and format(統計日期,'yyyyMM') <=concat('${截至年份}',case when '${截至月份}'>9 then '${截至月份}'else concat(0,'${截至月份}') end )
|
正文
|
年季度
|
SELECT * FROM 互網路連結存取資料 WHERE CAST(YEAR(註冊時間) as varchar) = '${年份}' and CAST(FLOOR((MONTH(註冊時間)+2)/3) as varchar) = '${季度}'
|
正文
|
正文類型
|
SQL 範例
|
推薦設定的參數類型
|
參數只能取一個值
|
SELECT * FROM 互網路連結存取資料 WHERE 合同類型='${正文參數}'
|
正文
|
參數可以取多個值
|
SELECT * FROM 互網路連結存取資料 WHERE 合同類型 in ('${正文參數}')
|
正文
|
當參數為空時,顯示全部,參數有值時,顯示參數值
|
select * from new_dian where 1=1 ${if(len(所屬大區2) == 0,"","and 所屬大區 in ('" + 所屬大區2 + "')")}
或者:select * from new_dian where 1=1 <parameter> and 所屬大區 in ('${所屬大區}')</parameter>
|
正文
|
日期類型
|
SQL 範例
|
推薦設定的參數類型
|
年份
|
SELECT * FROM 互網路連結存取資料 WHERE TO_CHAR(
"
銷售日期,
"
'YYYY')='${年份A}'
|
正文
|
年月
|
SELECT * FROM new_salesdetail WHERE TO_CHAR(
"
銷售日期
"
,'YYYY')='${年份}' and EXTRACT(MONTH FROM
"
銷售日期
"
)='${月份}'
|
正文
|
日期
|
SELECT * FROM new_salesdetail WHERE TO_CHAR("銷售日期",'YYYY-MM-DD') in ('${日期參數}')
|
日期
|
日期區間
|
SELECT * FROM new_salesdetail WHERE TO_CHAR("銷售日期",'YYYY-MM-DD') between '${開始日期}' and '${結束日期}'
|
日期
|
年月區間
|
SELECT * FROM new_salesdetail WHERE TO_CHAR("銷售日期",'YYYYMM') >=concat('${開始年份}',case when '${開始月份}'>9 then '${開始月份}'else concat(0,'${開始月份}') end ) and TO_CHAR("銷售日期",'YYYYMM') <=concat('${截止年份}',case when '${截止月份}'>9 then '${截止月份}' else concat(0,'${截止月份}') end )
|
正文
|
年季度
|
SELECT * FROM DEMO_CONTRACT WHERE TO_CHAR("註冊時間",'YYYY')='${年份}' and FLOOR((EXTRACT(MONTH FROM "註冊時間")+2)/3)='${季度}'
|
正文
|
正文類型
|
SQL 範例
|
推薦設定的參數類型
|
參數只能取一個值
|
SELECT * FROM demo_contract WHERE "合同類型"='${正文參數}'
|
正文
|
參數可以取多個值
|
SELECT * FROM demo_contract WHERE "合同類型" in ('${正文參數}')
|
正文
|
當參數為空時,顯示全部,參數有值時,顯示參數值
|
SELECT * FROM demo_contract WHERE 1=1 <parameter> and "合同類型" in ('${正文參數}') </parameter>
|
正文/日期/數值
|
日期類型
|
SQL 範例
|
推薦設定的參數類型
|
年份
|
SELECT * FROM new_salesdetail WHERE cast(year(銷售日期) as varchar)='${年份}'
|
正文
|
年月
|
SELECT * FROM new_salesdetail WHERE TO_CHAR("銷售日期",'yyyy')='${年份}' and cast(EXTRACT(MONTH FROM "銷售日期") as varchar)='${月份}'
|
正文
|
日期
|
SELECT * FROM new_salesdetail WHERE TO_CHAR("銷售日期",'yyyy-mm-dd') in ('${日期參數}')
|
日期
|
日期區間
|
SELECT * FROM new_salesdetail WHERE TO_CHAR("銷售日期",'yyyy-mm-dd') between '${開始日期}' and '${結束日期}'
|
日期
|
年月區間
|
SELECT * FROM DEMO_CONTRACT WHERE TO_CHAR("註冊時間",'yyyymm') >=concat('${開始年份}',case when cast('${開始月份}' as tinyint)>9 then '${開始月份}' else concat('0','${開始月份}') end ) and TO_CHAR("註冊時間",'yyyymm') <=concat('${截至年份}',case when cast('${截至月份}' as tinyint)>9 then '${截至月份}' else concat('0','${截至月份}') end )
|
正文
|
年季度
|
SELECT * FROM DEMO_CONTRACT WHERE TO_CHAR("註冊時間",'yyyy')='${年份}' and cast(FLOOR((EXTRACT(MONTH FROM "註冊時間")+2)/3) as varchar)='${季度}'
|
正文
|
正文類型
|
SQL 範例
|
推薦設定的參數類型
|
參數只能取一個值
|
SELECT * FROM demo_contract WHERE "合同類型"='${正文參數}'
|
正文
|
參數可以取多個值
|
SELECT * FROM demo_contract WHERE "合同類型" in ('${正文參數}')
|
正文
|
當參數為空時,顯示全部,參數有值時,顯示參數值
|
SELECT * FROM demo_contract WHERE 1=1 <parameter> and "合同類型" in ('${正文參數}') </parameter> 用於
|
正文
|
日期類型
|
SQL 範例
|
推薦設定的參數類型
|
年份
|
SELECT * FROM new_salesdetail WHERE TO_CHAR("銷售日期",'YYYY')='${年份A}'
|
正文
|
年月
|
SELECT * FROM new_salesdetail WHERE TO_CHAR("銷售日期",'YYYY')='${年份}' and EXTRACT(MONTH FROM "銷售日期")='${月份}'
|
正文
|
日期
|
SELECT * FROM new_salesdetail WHERE TO_CHAR("銷售日期",'YYYY-MM-DD') in ('${日期參數}')
|
日期
|
日期區間
|
SELECT * FROM new_salesdetail WHERE TO_CHAR("銷售日期",'YYYY-MM-DD') between '${開始日期}' and '${結束日期}'
|
日期
|
年月區間
|
SELECT * FROM DEMO_CONTRACT WHERE TO_CHAR("註冊時間",'yyyymm') >=concat('${開始年份}',case when cast('${開始月份}' as tinyint)>9 then '${開始月份}' else concat('0','${開始月份}') end ) and TO_CHAR("註冊時間",'yyyymm') <=concat('${截至年份}',case when cast('${截至月份}' as tinyint)>9 then '${截至月份}' else concat('0','${截至月份}') end )
|
正文
|
年季度
|
SELECT * FROM DEMO_CONTRACT WHERE TO_CHAR("註冊時間",'YYYY')='${年份}' and FLOOR((EXTRACT(MONTH FROM "註冊時間")+2)/3) ='${季度}'
|
正文
|
正文類型
|
SQL 範例
|
推薦設定的參數類型
|
參數只能取一個值
|
SELECT * FROM demo_contract WHERE "合同類型"='${正文參數}'
|
正文
|
參數可以取多個值
|
SELECT * FROM demo_contract WHERE "合同類型" in ('${正文參數}')
|
正文
|
當參數為空時,顯示全部,參數有值時,顯示參數值
|
SELECT * FROM demo_contract WHERE 1=1 <parameter> and "合同類型" in ('${正文參數}') </parameter>
|
正文
|
日期類型
|
SQL 範例
|
推薦設定的參數類型
|
|
|
|
年份
|
SELECT * FROM xxxx WHERE cast(year(銷售日期) as STRING)='${年份}'
|
正文
|
年月
|
SELECT * FROM xxxx WHERE cast(year(銷售日期) as STRING)='${年份}' and cast(month(銷售日期) as STRING)='${月份}'
|
正文
|
日期
|
SELECT * FROM xxxx WHERE 註冊時間 in ('${日期參數}')
|
日期
|
日期區間
|
SELECT * FROM xxxx WHERE 註冊時間 between '${開始日期}' and '${結束日期}'
|
日期
|
年月區間
|
SELECT * FROM xxxx WHERE TO_CHAR("註冊時間",'yyyymm') >=concat('${開始年份}',case when cast('${開始月份}' as tinyint)>9 then '${開始月份}' else concat('0','${開始月份}') end ) and TO_CHAR("註冊時間",'yyyymm') <=concat('${截至年份}',case when cast('${截至月份}' as tinyint)>9 then '${截至月份}' else concat('0','${截至月份}') end )
|
正文
|
年季度
|
SELECT * FROM xxxx WHERE cast(year(註冊時間) as STRING)='${年份}' and cast(truncate((month(註冊時間)+2)/3) as STRING)='${季度}'
|
正文
|
正文類型
|
SQL 範例
|
推薦設定的參數類型
|
參數只能取一個值
|
SELECT * FROM demo_contract WHERE 合同類型='${正文參數}'
|
正文
|
參數可以取多個值
|
SELECT * FROM demo_contract WHERE 合同類型 in ('${正文參數1}')
|
正文
|
當參數為空時,顯示全部,參數有值時,顯示參數值
|
SELECT * FROM demo_contract WHERE 1=1 <parameter> and 合同類型 in ('${正文參數}') </parameter>
|
正文
|
日期類型
|
SQL 範例
|
推薦設定的參數類型
|
年份
|
SELECT * FROM xxxx WHERE toString(toYear(註冊時間)) ='${年份}'
|
正文
|
年月
|
SELECT * FROM xxxx WHERE toString(toYear(註冊時間)) ='${年份}' and toString(toMonth(註冊時間)) ='${月份}'
|
正文
|
日期
|
SELECT * FROM xxxx WHERE 註冊時間 in ('${日期參數}')
|
日期
|
日期區間
|
SELECT * FROM xxxx WHERE 註冊時間 between '${開始日期}' and '${結束日期}'
|
日期
|
年月區間
|
SELECT * FROM xxxx WHERE TO_CHAR("註冊時間",'yyyymm') >=concat('${開始年份}',case when cast('${開始月份}' as tinyint)>9 then '${開始月份}' else concat('0','${開始月份}') end ) and TO_CHAR("註冊時間",'yyyymm') <=concat('${截至年份}',case when cast('${截至月份}' as tinyint)>9 then '${截至月份}' else concat('0','${截至月份}') end )
|
正文
|
年季度
|
SELECT * FROM xxxx WHERE toString(toYear(註冊時間))='${年份}' and toString(floor((toMonth(註冊時間)+2)/3))='${季度}'
|
正文
|
正文類型
|
SQL 範例
|
推薦設定的參數類型
|
參數只能取一個值
|
SELECT * FROM demo_contract WHERE "合同類型"='${正文參數}'
|
正文
|
參數可以取多個值
|
SELECT * FROM demo_contract WHERE "合同類型" in ('${正文參數}')
|
正文
|
當參數為空時,顯示全部,參數有值時,顯示參數值
|
SELECT * FROM demo_contract WHERE 1=1 <parameter> and "合同類型" in ('${正文參數}') </parameter>
|
正文
|