Postgresql 无法使用字段总和过滤查询
Postgresql Can't filter a query using sum of field
实际上我需要获取 SUM(row) > 0 的所有行,但是当我造句并执行它时:
select o.corden,
o.cproveedor,
o.fecha_orden,
o.status,
o.monto_total,
SUM(od.cant_restante) as cant_pend,
COUNT(od.cart_comercial) as articulos,
d.nombre as proveedor
from ordencompra o
inner join ordencompra_det od on o.corden = od.corden_det
inner join proveedores p on o.cproveedor = p.cproveedor
inner join data d on p.cdata = d.cdata
where o.status = 'PROCESADA'
and cant_pend > 0
group by o.corden,
d.nombre
order by o.corden asc
它说:列 << cant_pend >> 不存在!
所以我将其更改为:
select o.corden,
o.cproveedor,
o.fecha_orden,
o.status,
o.monto_total,
SUM(od.cant_restante) as cant_pend,
COUNT(od.cart_comercial) as articulos,
d.nombre as proveedor
from ordencompra o
inner join ordencompra_det od on o.corden = od.corden_det
inner join proveedores p on o.cproveedor = p.cproveedor
inner join data d on p.cdata = d.cdata
where o.status = 'PROCESADA'
and SUM(od.cant_restante) > 0
group by o.corden,
d.nombre
order by o.corden asc
where clausule
不允许使用聚合函数
对句子有帮助吗?
您想要 having
子句:
select o.corden,
o.cproveedor,
o.fecha_orden,
o.status,
o.monto_total,
SUM(od.cant_restante) as cant_pend,
COUNT(od.cart_comercial) as articulos,
d.nombre as proveedor
from ordencompra o
inner join ordencompra_det od on o.corden = od.corden_det
inner join proveedores p on o.cproveedor = p.cproveedor
inner join data d on p.cdata = d.cdata
where o.status = 'PROCESADA'
group by o.corden,
d.nombre
having SUM(od.cant_restante) > 0
order by o.corden asc
实际上我需要获取 SUM(row) > 0 的所有行,但是当我造句并执行它时:
select o.corden,
o.cproveedor,
o.fecha_orden,
o.status,
o.monto_total,
SUM(od.cant_restante) as cant_pend,
COUNT(od.cart_comercial) as articulos,
d.nombre as proveedor
from ordencompra o
inner join ordencompra_det od on o.corden = od.corden_det
inner join proveedores p on o.cproveedor = p.cproveedor
inner join data d on p.cdata = d.cdata
where o.status = 'PROCESADA'
and cant_pend > 0
group by o.corden,
d.nombre
order by o.corden asc
它说:列 << cant_pend >> 不存在! 所以我将其更改为:
select o.corden,
o.cproveedor,
o.fecha_orden,
o.status,
o.monto_total,
SUM(od.cant_restante) as cant_pend,
COUNT(od.cart_comercial) as articulos,
d.nombre as proveedor
from ordencompra o
inner join ordencompra_det od on o.corden = od.corden_det
inner join proveedores p on o.cproveedor = p.cproveedor
inner join data d on p.cdata = d.cdata
where o.status = 'PROCESADA'
and SUM(od.cant_restante) > 0
group by o.corden,
d.nombre
order by o.corden asc
where clausule
不允许使用聚合函数对句子有帮助吗?
您想要 having
子句:
select o.corden,
o.cproveedor,
o.fecha_orden,
o.status,
o.monto_total,
SUM(od.cant_restante) as cant_pend,
COUNT(od.cart_comercial) as articulos,
d.nombre as proveedor
from ordencompra o
inner join ordencompra_det od on o.corden = od.corden_det
inner join proveedores p on o.cproveedor = p.cproveedor
inner join data d on p.cdata = d.cdata
where o.status = 'PROCESADA'
group by o.corden,
d.nombre
having SUM(od.cant_restante) > 0
order by o.corden asc