想要选择相同的product_id但更大的id行

时间:2013-12-02 16:16:56

标签: sql

我有一些关于sql的问题,我想选择更大的warehouse_product_id并且使用相同的product_id行,我已经尝试使用

请帮助

表:

http://postimg.org/image/mkavxnmg9/

我想:

http://postimg.org/image/8msomu47l/

3 个答案:

答案 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_idwarehouse_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。