レポートの目的でMysqlと統合されたメタベースを使用しています。ドキュメントを調べましたが、SQLベースの質問にフィルターを実装する方法を説明する例を見つけることができませんでした。
私が見つけた唯一の例は、日付範囲とフィールドフィルタに関するものでしたが、テキストと数値に関するものではありませんでした。
誰かがテキストフィルターの使用方法に関するドキュメントや例を提供できますか?.
メタベースバージョンv0.24.2を使用しています
実行しようとしているクエリはthis
SELECT @a:=@a+1 "Serial Number", ssk_transaction.transactionId AS "TranId", t2.typeName AS "Transaction Type", ssk_transaction.createdTime AS "GenDate", t3.deviceName AS "Machine Name", t3.deviceLocation AS "Machine Location", t9.eventApiName AS 'API Name' , t8.vendorResultCode AS 'Last API Response', (SELECT createdTime FROM ssk_transaction_event_detail t4 WHERE t4.transactionId = ssk_transaction.transactionId ORDER BY id DESC LIMIT 1) AS "Last API Called", (SELECT IFNULL(SUM(t5.itemName * t4.itemCount), 0) FROM ssk_transaction_cash_detail t4 LEFT JOIN ssk_inventory_item t5 ON (t4.itemId = t5.itemId) LEFT JOIN ssk_inventory_category t10 ON (t5.categoryId = t10.categoryId) WHERE t4.transactionId = ssk_transaction.transactionId AND t10.categoryName = 'acceptor') "Cash In", (SELECT IFNULL(SUM(t5.itemName * t4.itemCount), 0) FROM ssk_transaction_cash_detail t4 LEFT JOIN ssk_inventory_item t5 ON (t4.itemId = t5.itemId) LEFT JOIN ssk_inventory_category t10 ON (t5.categoryId = t10.categoryId) WHERE t4.transactionId = ssk_transaction.transactionId AND t10.categoryName = 'dispenser') "Cash Returned", IFNULL((SELECT "Cash In"), 0) - IFNULL((SELECT "Cash Returned"), 0) AS "Amount of Activity", (SELECT t8.vendorResultCode FROM ssk_transaction_event_detail t8 WHERE t8.transactionId = ssk_transaction.transactionId AND t8.eventId = 6 ORDER BY id DESC LIMIT 1) AS "Sim Status", 'Completed' AS "Transaction Status", ssk_transaction.customerMsisdn AS MSISDN, ssk_transaction.customerCNIC AS CNIC FROM (SELECT @a:=0) initvars, ssk_transaction LEFT JOIN ssk_transaction_type t2 ON (ssk_transaction.typeId = t2.typeId) LEFT JOIN ssk_device t3 ON (ssk_transaction.deviceUUID = t3.deviceUUID) LEFT JOIN ssk_transaction_cash_detail t6 ON (ssk_transaction.transactionId = t6.transactionId ) LEFT JOIN ssk_inventory_item t7 ON (t6.itemId = t7.itemId) LEFT JOIN ssk_transaction_event_detail t8 ON (ssk_transaction.transactionId = t8.transactionId AND t8.eventId = 10) LEFT JOIN ssk_transaction_event t9 ON (t9.eventId = t8.eventId) WHERE {{created_at}} AND {{id}} [[AND ssk_transaction.customerMsisdn= {{msisdn}}]] AND {{cnic}} and t2.typeId = 3 AND t8.eventId = 10 AND t8.vendorResultCode = '405000000' GROUP BY ssk_transaction.transactionId ORDER BY ssk_transaction.createdTime ASC
使用しているバージョン番号の下のgithubページで問題を開きます。 contributorsは、クエリを実行したり、要求されたドキュメント/ wikiを提供したりするのに役立ちます。
多分これはあなたを助けるかもしれません:
try to use CONCAT('%',{{variable}},'%') such as:
WHERE 1=1 [[ AND test LIKE CONCAT('%',{{variable}},'%') ]]
変数を作成するには、クエリを記述し、{{variablename}}の形式で変数のプレースホルダーを定義します。これを行うと、メタベースの右側に[変数]パネルが自動的に表示され、この変数のタイプを選択する必要があります(デフォルト値を指定する場合は、変数に必要なマークを付けます)。
クエリで変数プレースホルダーをエスケープしないでください(そのため、CONCAT( '%'、{{variable}}、 '%')は機能しません)。また、式全体をオプションとして二重括弧で囲むことができます。
次の画像は、クエリの1つの例を示しています。
select * from pg_tables where schemaname = {{schemaname}} [[and tablename = {{tablename}}]]
この例では、tablename変数に値を指定しないと、tablenameフィルター全体が無視されます。また、両方の変数がタイプテキストでマークされていることに注意してください。
SQLベース(ネイティブクエリ)の質問にフィルタを追加するには、SQL結果を生成した後、右下のコンパスをクリックし、[このクエリの結果を分析する]をクリックします。フィルタオプションが上部に表示されます。
次に、これを別の質問として保存して、フィルター画面が常に表示されるようにすることができます。