I need to use a CTE for my SQL query but it doesn't work. See the the first img below. I create another query with the exactly same script and filters inside the with statement and the query works normally (see the second img). I really can't tell what is wrong with the CTE..
My code is below:
with inv as (
select
p.productId as 编码,
p.productFullName as 品名,
b.brand as 品牌,
i.warehouse as 仓库,
i.date as 日期,
i.qty as 数量,
i.amount as 成本额
from product as p
left join
(
select productRowId, warehouse, qty, amount, date
from inventoryHist
WHERE {{date}}
) as i on p.rowId = i.productRowId
left join
(
select brand, code, class, rowId as brandrowId
from brand
) as b on p.brandRowId = b.brandrowId
where p.productId like CONCAT('%', {{product}}, '%') or p.productFullName like CONCAT('%', {{product}}, '%')
)
select * from inv
Hi @xuheng925
The error is coming from your database. Check your database query log for more details.
Try running the query directly on your database. Try enclosing column names.
Thanks @flamber. I just realize the reason of the error is MySQL 5.7 doesn't support With statement (which is supported by 8.0). We will have to use sub-query as alternative for that, sub-optimal from performance point of view.