我正在使用與Mysql集成的元數據庫進行報告。我瀏覽了文檔,但無法找到任何解釋如何在基於SQL的問題中實現過濾器的示例。元數據庫過濾器示例
我發現的唯一例子是關於日期範圍和字段過濾器,但不是文本和數字。
任何人都可以提供有關如何使用文本過濾器的文檔或任何示例。
我使用的元數據庫版本v0.24.2
查詢我試圖運行是這個
SELECT @a:[email protected]+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
它缺少過濾器中的列別名。變量{{createdAt}},{{id}}和{{cnic}}不會與其各自的列進行比較。它應該是這樣的: createdAt = {{created_at}} AND id = {{id}} [[AND ssk_transaction.customerMsisdn = {{msisdn}}]] AND cnic = {{cnic}} 但是,假設變量與列名稱匹配,所以您應該修復查詢以使用正確的列。 – fgasparini
其餘的varialbles被設置爲字段過濾器,並正在正常工作只有文本的人給我一個問題 – Anas