首页 > 解决方案 > SQL 运行求和两个表

问题描述

我有两张表,订单和库存,我需要用可用库存填写订单,但我可以做一个运行总和吗

CREATE TABLE `PEDIDOS` ( `N_PEDIDO` INTEGER, `COD_MATERIAL` INTEGER, `CAJAS_PEDIDOS` INTEGER )
CREATE TABLE `STOCK` ( `COD_MATERIAL` INTEGER, `CAJAS` INTEGER )

sql

SELECT      PEDIDOS.N_PEDIDO, 
            PEDIDOS.COD_MATERIAL, 
            PEDIDOS.CAJAS_PEDIDOS, 
            STOCK.CAJAS,
            sum(PEDIDOS.CAJAS_PEDIDOS) - STOCK.CAJAS as 'CAJAS_ASIGNADAS'
FROM        PEDIDOS 
INNER JOIN  STOCK
ON          PEDIDOS.COD_MATERIAL = STOCK.COD_MATERIAL
GROUP BY    PEDIDOS.COD_MATERIAL, PEDIDOS.N_PEDIDO
ORDER BY    PEDIDOS.N_PEDIDO, PEDIDOS.COD_MATERIAL;

我期望结果像

Order    Material   Qty Ord  Stock   Balance
20001      100001   500      300    -200
20001      100002   200      200      0
20001      100003    40       50     10
20002      100001    30      300    -230
20002      100003    50       50      0

http://sqlfiddle.com/#!7/0a4d6/1

标签: mysqlsqlitejoincumulative-sum

解决方案


这是解决方案,也许可以帮助别人

http://sqlfiddle.com/#!7/0a4d6/79/0

是用 sqlite 制作的


推荐阅读