gpt4 book ai didi

sql - 将 SUM 列添加到查询

转载 作者:行者123 更新时间:2023-12-02 05:39:15 31 4
gpt4 key购买 nike

我正在尝试执行一个返 repo 买账单信息的查询,但还有另一个包含账单详细信息的表格,但我需要将该总数添加到另一个查询中,但我无法添加列,因为它说我需要在组中包含与选择中相同的对象,我用这种方式尝试过,但它说它返回多个值。请帮助! :D

SELECT fc.fecha_factura_compra AS fecha, fc.id_factura AS no_factura, fc.serie,
o.abreviatura + CAST(p.corr_id AS VARCHAR(255)) AS codigo_trupp,
p.nombre, fc.dias_credito, fc.tipo_cambio,
(SELECT SUM(dc.peso_neto * dc.precio_unitario)
FROM detalle_compra AS dc
GROUP BY dc.id_proveedor,
dc.id_factura,
dc.serie) AS total
FROM factura_compra AS fc,
origen AS o,
proveedor AS p,
detalle_compra AS dc
WHERE fc.id_proveedor = p.id_proveedor
AND dc.id_proveedor = p.id_proveedor
AND dc.id_factura = fc.id_factura
AND p.id_origen = o.id_origen
AND dc.serie = fc.serie
AND dc.id_factura = fc.id_factura
AND dc.id_proveedor = fc.id_proveedor
AND fc.activo_inactivo = 'true'
AND fc.anulada = 'false'

最佳答案

子查询的构造极其缓慢,应避免使用。更好的解决方案是编写如下查询。

要向查询添加总计,您需要对结果集中的所有其他字段分组依据

SELECT fc.fecha_factura_compra AS fecha
, fc.id_factura AS no_factura
, fc.serie
, o.abreviatura + CAST(p.corr_id AS VARCHAR(255)) AS codigo_trupp
, p.nombre
, fc.dias_credito
, fc.tipo_cambio
, SUM(dc.peso_neto * dc.precio_unitario) AS total
FROM factura_compra AS fc

JOIN proveedor AS p
ON fc.id_proveedor = p.id_proveedor

JOIN origen AS o
ON p.id_origen = o.id_origen

JOIN detalle_compra AS dc
ON dc.id_factura = fc.id_factura
AND dc.serie = fc.serie
AND dc.id_factura = fc.id_factura
AND dc.id_proveedor = fc.id_proveedor
AND dc.id_proveedor = p.id_proveedor

WHERE fc.activo_inactivo = 'true'
AND fc.anulada = 'false'

GROUP BY fc.fecha_factura_compra
, fc.id_factura
, fc.serie
, o.abreviatura + CAST(p.corr_id AS VARCHAR(255))
, p.nombre
, fc.dias_credito
, fc.tipo_cambio

关于sql - 将 SUM 列添加到查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234922/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com