获取在同一个表中进行多次搜索的最后一条记录

时间:2015-08-11 21:04:42

标签: sql sql-server-2008

我有一个名为Products的表。

字段

  • PRODUCT_ID
  • 键入(IN或OUT)
  • 日期(注册日期)

表格中有几个条目,条目和产品输出及其各自的日期。

如何在OUTPUT之后找到没有LAST ENTRY移动的产品?

我已经尝试过:

SELECT Products.product_id, Products.Type, MAX(Products.Date) 
FROM Products PRODUCTS_1 
LEFT OUTER JOIN Products PRODUCTS 
  ON PRODUCTS_1.Product_Id = PRODUCTS.Product_Id 
  AND PRODUCTS_1.Type='O'} 
WHERE (PRODUCTS.Type='I') 
  AND (PRODUCTS_1.Date>PRODUCTS.Date) 
GROUP BY Products.product_id, Products.Type;

1 个答案:

答案 0 :(得分:1)

此查询将列出最新条目为I的所有产品。我认为这就是你所要求的。

SELECT p.product_id
  FROM products p
 GROUP BY p.product_id
HAVING MAX(Date) = MAX(CASE WHEN Type = 'I' THEN Date END)