当销售日期> 1时,从销售表中选择行。比每个ProductID的order表中的最低order_date

时间:2017-09-14 20:59:08

标签: mysql sql sql-server database

我有2个表,一个用于产品销售,另一个用于供应商的产品订单。

销售表包含:(ProductID,销售日期,客户ID等)

订单表包含(ProductID,订单日期,供应商ID等)。

销售表上的每个产品都被多次出售,Orders表的每个产品都被多次订购。 对于每个产品ID,我想查询销售表,以仅返回该产品的销售日期高于该产品的最早订单日期的行。例如,可能有一个产品甚至在第一次从供应商订购之前就被出售了,对于每个产品ID,我想要消除那些带有这些日期的行,并且只保留那些来自供应商最早订单之后的行。有关如何在GREENYELLOWSQL中执行此操作的任何想法?谢谢!

销售表:

ProductID | Sale_date | 客户id

订单表:

ProductID | Order_Date | 供应商ID

任何帮助或提示都将不胜感激!

1 个答案:

答案 0 :(得分:0)

select s.*, o.*
from sales s
inner join (select product.id,min(order_date) min_order_date, supplier_id from orders) o
on s.product_id = o.product_id and s.sale_date > o.min_order_date

如果我理解正确,上面应该做的伎俩!

在任何情况下都不要犹豫,在这里发表更多问题评论:)

泰德