select
det_movimiento.id,
product.name,
movimiento.fecha,
det_movimiento.quantity,
(
select sum(quantity) total from
(
select quantity, id_product from det_ajuste da join ajuste a on ajuste.id = det_ajuste.id_ajuste where a.fecha <= movimiento.fecha
union
select quantity, id_product from det_movimiento dm join movimiento m on movimiento.id = det_movimiento.id_movimiento where m.fecha <= movimiento.fecha
) t
) total
from det_movimiento
join movimiento on movimiento.id = det_movimiento.id_movimiento
join product on product.id = det_movimiento.id_product
order by movimiento.fecha desc;
我正在尝试在子查询中使用父查询中的“movimiento.fecha”列。但我收到这个错误。
“where 子句中的列‘movement.date’未知”、“where 子句中的列‘movement.date’未知”
我不知道我做错了什么😢
您需要表的两个实例的别名。 始终对任何足够大以引用至少三个对象的查询上的所有表/视图使用别名,包括无处不在您引用这些对象:
select
dm.id,
p.name,
m.fecha,
dm.quantity,
(
select sum(quantity) total from
(
select quantity, id_product from det_ajuste da join ajuste a on a.id = da.id_ajuste where a.fecha <= m.fecha
union
select quantity, id_product from det_movimiento dm0 join movimiento m0 on m0.id = dm0.id_movimiento where m0.fecha <= m.fecha
) t
) total
from det_movimiento dm
join movimiento d on m.id = dm.id_movimiento
join product p on p.id = dm.id_product
order by m.fecha desc;