【发布时间】:2011-12-27 15:27:44
【问题描述】:
我有两张桌子
table_inventory
List item
inventory_rack_key(primarykey)
node_key
rack_id
inventory_item_key
in_coming_qty,locked_qty
quantity
table_item
inventory_item_key(primary key)
item_id,product_zone
此处提供了表格示例DB TABLES
我需要查询以找出那些 (net_qty) 的项目,即in_coming_qty & quantity & locked_qty 的 b/w 总和为负数。由 node_key,rack_id, item_id,net_qty 排列
注意: 每个不同的集合 {node_key,rack_id, item_id,net_qty} 将只有 1 行输出。
例如 :{node_key,rack_id, item_id} = {ABD101,RK-01,562879} 在 table_inventory 中有 4 行
但在输出 net_qty= -78(single row) 中。
我的查询给了我结果,但我们可以用其他方式吗?
SELECT l.node_key,
l.rack_id,
i.item_id,
( SUM(l.quantity + l.in_coming_qty) - SUM(l.locked_qty) ) AS net_qty
FROM table_inventory l,
table_item i
WHERE l.inventory_item_key = i.inventory_item_key
GROUP BY l.node_key,
l.rack_id,
i.item_id
HAVING SUM(l.quantity + l.in_coming_qty) - SUM(l.locked_qty) < 0
【问题讨论】:
-
为什么你的答案无法接受?
-
@mwigdahl 我的回答是正确的,但还有其他方法可以做到这一点
-
如果您当前的解决方案没有直接的问题(如结果不一致、太慢等),您可以考虑将其发布到专门针对此类问题的codereview.stackexchange.com。
-
@AndriyM 当然我也会把它贴在那里