I am really not sure if this is going to help you or not @Hyperbytes but I was forced to do something totally out of the realms of what Wappler Query Builder was capable of just the other day, and after hours upon hours of various attempts, with the assistance of @TomD and @s.alpaslan they pointed me towards the SQL CREATE VIEW, which because i live under a rock I had never heard of before
Armed with this new found power I was able to create 2 different, fairly complex views and still parse in the variables from my application in Wappler to get the results I needed.
Here are the 2 Views just incase it gives you some idea, not sure.
Header of a csv file data
Summary
CREATE VIEW csv_header_view AS
select distinct `bronpro_vulo`.`br_invoices`.`inv_order_number` AS `Filter_Order_Number`,
`bronpro_vulo`.`csv_header_defaults`.`Header` AS `Header`,
concat(`bronpro_vulo`.`br_branch`.`b_order_number_prefix`, `bronpro_vulo`.`br_invoices`.`inv_order_number`) AS `Document_Number`,
`bronpro_vulo`.`csv_header_defaults`.`Deleted` AS `Deleted`,
`bronpro_vulo`.`csv_header_defaults`.`Print_Status` AS `Print_Status`,
`bronpro_vulo`.`br_branch`.`b_account_number` AS `Customer_Code`,
(case date_format(`bronpro_vulo`.`br_invoices`.`inv_date`,'%M') when 'January' then '4' when 'February' then '5' when 'March' then '6' when 'April' then '7' when 'May' then '8' when 'June' then '9' when 'July' then '10' when 'August' then '11' when 'September' then '12' when 'October' then '1' when 'November' then '2' when 'December' then '3' end) AS `Period_Number`,
date_format(`bronpro_vulo`.`br_invoices`.`inv_date`,'%d/%m/%Y') AS `Date`,
concat(`bronpro_vulo`.`br_branch`.`b_order_number_prefix`, `bronpro_vulo`.`br_invoices`.`inv_order_number`) AS `OrderNumber`,
`bronpro_vulo`.`csv_header_defaults`.`Inc_Exc` AS `Inc_Exc`,
`bronpro_vulo`.`csv_header_defaults`.`Discount` AS `Discount`,
`bronpro_vulo`.`br_global_settings`.`gs_banking_institute` AS `Invoice_Message_1`,
`bronpro_vulo`.`br_global_settings`.`gs_bank_account_number` AS `Invoice_Message_2`,
`bronpro_vulo`.`br_global_settings`.`gs_bank_branch_code` AS `Invoice_Message_3`,
`bronpro_vulo`.`br_branch`.`b_delivery_address1` AS `Delivery_Address_1`,
`bronpro_vulo`.`br_branch`.`b_delivery_address2` AS `Delivery_Address_2`,
`bronpro_vulo`.`br_branch`.`b_delivery_address3` AS `Delivery_Address_3`,
`bronpro_vulo`.`br_branch`.`b_delivery_address4` AS `Delivery_Address_4`,
`bronpro_vulo`.`br_branch`.`b_delivery_address5` AS `Delivery_Address_5`,
`bronpro_vulo`.`csv_header_defaults`.`Sales_Analysis_Code` AS `Sales_Analysis_Code`,
`bronpro_vulo`.`br_branch`.`b_terms` AS `Settlement_Terms`,
date_format(`bronpro_vulo`.`br_invoices`.`inv_date`,'%d/%m/%Y') AS `Document_Date`,
`bronpro_vulo`.`br_users`.`u_phone_mobile` AS `Telephone`,
`bronpro_vulo`.`br_branch`.`b_fax` AS `Fax_Number`,
`bronpro_vulo`.`br_users`.`u_first_name` AS `Contact_Person`,
`bronpro_vulo`.`csv_header_defaults`.`Exchange_Rate` AS `Exchange_Rate`,
`bronpro_vulo`.`br_branch`.`b_delivery_method` AS `Freight_Method`,
`bronpro_vulo`.`br_branch`.`b_freight` AS `Ship_Deliver`,
`bronpro_vulo`.`csv_header_defaults`.`Additional_Costs` AS `Additional_Costs`,
`bronpro_vulo`.`csv_header_defaults`.`Email_Status` AS `Email_Status`
from
(`bronpro_vulo`.`br_global_settings` left join
(`bronpro_vulo`.`csv_header_defaults` left join
(
(
(
(
(`bronpro_vulo`.`br_invoices` join `bronpro_vulo`.`br_users` on
(
(`bronpro_vulo`.`br_users`.`id_users` = `bronpro_vulo`.`br_invoices`.`inv_user_id`)
)
)
join `bronpro_vulo`.`br_branch` on
(
(`bronpro_vulo`.`br_branch`.`id_branch` = `bronpro_vulo`.`br_users`.`id_branch_fk`)
)
)
join `bronpro_vulo`.`br_group` on
(
(`bronpro_vulo`.`br_group`.`id_group` = `bronpro_vulo`.`br_users`.`id_group_fk`)
)
)
join `bronpro_vulo`.`br_pricing` on
(
(`bronpro_vulo`.`br_pricing`.`id_price` = `bronpro_vulo`.`br_invoices`.`inv_price_id`)
)
)
join `bronpro_vulo`.`br_products` on
(
(`bronpro_vulo`.`br_products`.`id_products` = `bronpro_vulo`.`br_pricing`.`id_product_fk`)
)
)
on
(
(`bronpro_vulo`.`csv_header_defaults`.`Header` = `bronpro_vulo`.`csv_header_defaults`.`Header`)
)
)
on
(
(`bronpro_vulo`.`br_global_settings`.`id_global_settings` = 1)
)
)
And here is the Detail section for my csv file
Summary
CREATE VIEW csv_detail_view AS
select distinct `bronpro_vulo`.`br_invoices`.`inv_order_number` AS `Filter_Order_Number`,
`bronpro_vulo`.`csv_detail_defaults`.`Detail` AS `Detail`,
`bronpro_vulo`.`csv_detail_defaults`.`Cost_Price` AS `Cost_Price`,
`bronpro_vulo`.`br_invoices`.`inv_quantity` AS `Quantity`,
`bronpro_vulo`.`br_invoices`.`inv_price` AS `Unit_Selling_Price`,
round(((`bronpro_vulo`.`br_invoices`.`inv_price` * concat(1,`bronpro_vulo`.`br_invoices`.`inv_vat`)) / 100),2) AS `Inclusive_Price`,
`bronpro_vulo`.`br_products`.`pr_units` AS `Unit`,
`bronpro_vulo`.`br_branch`.`b_tax_type` AS `Tax_Type`,
`bronpro_vulo`.`csv_detail_defaults`.`Discount_Type` AS `Discount_Type`,
`bronpro_vulo`.`csv_detail_defaults`.`Discount_Percentage` AS `Discount_Percentage`,
`bronpro_vulo`.`br_products`.`pr_code` AS `Code`,
concat(`bronpro_vulo`.`br_products`.`pr_description`,' ',`bronpro_vulo`.`br_products`.`pr_units`,' ',`bronpro_vulo`.`br_products`.`pr_mix`) AS `Description`,
`bronpro_vulo`.`csv_detail_defaults`.`Line_Type` AS `Line_Type`,
`bronpro_vulo`.`csv_detail_defaults`.`Projects_Code` AS `Projects_Code`,
`bronpro_vulo`.`csv_detail_defaults`.`Store` AS `Store`
from
(`bronpro_vulo`.`br_global_settings` left join
(`bronpro_vulo`.`csv_detail_defaults` left join
(
(
(
(
(`bronpro_vulo`.`br_invoices` join `bronpro_vulo`.`br_users` on
(
(`bronpro_vulo`.`br_users`.`id_users` = `bronpro_vulo`.`br_invoices`.`inv_user_id`)
)
)
join `bronpro_vulo`.`br_branch` on
(
(`bronpro_vulo`.`br_branch`.`id_branch` = `bronpro_vulo`.`br_users`.`id_branch_fk`)
)
)
join `bronpro_vulo`.`br_group` on
(
(`bronpro_vulo`.`br_group`.`id_group` = `bronpro_vulo`.`br_users`.`id_group_fk`)
)
)
join `bronpro_vulo`.`br_pricing` on
(
(`bronpro_vulo`.`br_pricing`.`id_price` = `bronpro_vulo`.`br_invoices`.`inv_price_id`)
)
)
join `bronpro_vulo`.`br_products` on
(
(`bronpro_vulo`.`br_products`.`id_products` = `bronpro_vulo`.`br_pricing`.`id_product_fk`)
)
)
on
(
(`bronpro_vulo`.`csv_detail_defaults`.`Detail` = `bronpro_vulo`.`csv_detail_defaults`.`Detail`)
)
)
on
(
(`bronpro_vulo`.`br_global_settings`.`id_global_settings` = 1)
)
)
As I say I am really not sure if in your situation this will help at all though, but hope so, good luck.