我有一些关于sql的问题,我想选择更大的warehouse_product_id并且使用相同的product_id行,我已经尝试使用
请帮助
表:
http://postimg.org/image/mkavxnmg9/
我想:
答案 0 :(得分:1)
SELECT warehouse_product_id FROM [your table] where product_id="value"
除非我错过了你所得到的,这是完全可能的
答案 1 :(得分:0)
我假设数量并且启用相同的仓库/产品具有相同的值。如果没有,你需要加入桌面才能获得这些。
select warehouse_id, max(warehouse_product_id) as item_id, product_id, max(qty), max(enable)
from warehouse_product
group by warehouse_id, product_id
答案 2 :(得分:0)
您似乎在寻找最佳的每组解决方案。对于给定的product_id
和warehouse_id
对,您需要获得最大warehouse_product_id
:
SELECT t1.* FROM aTable t1
JOIN (
SELECT product_id, warehouse_id, MAX(warehouse_product_id) maxVal
FROM aTable
GROUP BY product_id, warehouse_id
) t2
ON t1.product_id = t2.product_id AND t1.warehouse_id = t2.warehouse_id AND t1.warehouse_product_id = t2.maxVal
可替换地:
SELECT t1.* FROM aTable t1
LEFT JOIN aTable t2
ON t1.product_id = t2.product_id AND t1.warehouse_id = t2.warehouse_id AND t1.warehouse_product_id < t2.warehouse_product_id
WHERE t2.warehouse_product_id IS NULL
这些解决方案应该适用于大多数DBMS。