相关子查询中的SQL数学运算

我正在处理三个表,基本上,一个是物料清单,一个包含零件库存,最后一个包含工作订单或作业。我试图找出是否有可能有一个相关的子查询,它可以使用来自外部查询的值执行数学运算。这是我正在尝试做的一个例子:

SELECT A.work_order,A.assembly,A.job_quantity,
    (SELECT COUNT(X.part_number)
    FROM bom X
    WHERE X.assembly = A.assembly
    AND (X.quantity_required * A.job_quantity) >= (SELECT Y.quantity_available FROM inventory Y WHERE 
Y.part_number = X.part_number)) AS negatives
FROM work_orders A
ORDER BY A.assembly ASC

我试图找出对于给定的工作订单,是否有我们没有足够的零件来构建组件。我目前收到“错误关联字段”错误。是否可以在单个查询中执行此类操作?

豆豆兔

尝试将子查询移动到连接,如下所示:

   SELECT a.work_order, a.assembly, a.job_quantity, n.negatives
   FROM work_orders a JOIN (SELECT x.part_number, COUNT(x.part_number) as negatives
                     FROM bom x JOIN work_orders b
                     ON x.assembly = b.assembly
                     WHERE (x.quantity_required * b.job_quantity) >= (SELECT y.quantity_available 
                                                                       FROM inventory y WHERE 
                                                                       y.part_number = x.part_number)
                    GROUP BY x.part_number) n
                    ON a.part_number = n.part_number
                    ORDER BY a.assembly ASC

或者用子查询创建一个临时游标,然后用它来连接主表。希望这可以帮助。

路易斯

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章