【发布时间】:2013-02-14 07:58:06
【问题描述】:
我想编写查询以查找最有效的行。我有这些表:
Sellers
Id Name
1 Mark
2 Julia
3 Peter
Stocks
Id SellerId ProductCode StockCount
1 1 30A 10
2 2 20A 4
3 1 20A 2
4 3 42B 3
还有 sqlfiddle http://sqlfiddle.com/#!6/fe5b1/1/0
我的意图是为库存找到最佳卖家。
如果客户需要 30A、20A 和 42B 产品。我需要返回“Mark”和“Peter”,因为 Mark 有两种产品(30A 和 20A),所以不需要 Julia。
如何在 sql 中解决这个问题?
【问题讨论】:
-
您使用的是哪种 RDBMS,MS SQL Server、MySQL、PostgreSQL...?我猜 MS SQL Server 作为 SQL Fiddle 正在使用它。添加所需的标签。以及您添加的 SQL Fiddle 链接,最好编辑您的问题并将其添加到那里,因此查看问题的其他用户不需要通过所有 cmets 来确保他们拥有所有信息
-
我认为这里的问题是 Ozan 想要找到可以完成订单的最少供应商数量。您可能希望按供应商可以提供的物品总数对供应商列表进行排序,但编码可能很棘手。
-
我认为你的问题比这里描述的更复杂。如果两个卖家的产品数量相同(但产品不同?)
-
为什么不需要 Julia?彼得也没有 30A。你应该只返回 Mark,因为他已经卖出了 14 只股票,然后是 Julia 4 和 Peter 3……我不明白你想在这里实现什么。
-
@GilPeretz 如果我需要返回它们两个。另一种情况,如果 mark 有 42B,那么 peter 会禁用。
标签: sql tsql sql-server-2012