过去24小时内未更新的项目列表

时间:2012-08-31 10:52:54

标签: sql-server-2008 tsql

上午, 这类似于我昨天提出的问题[问题]:SQL query to get latest prices, depending on the date

我需要返回一份ASIN列表,这些列表在最低价格表的最后更新日期后的24小时内尚未更新。我可以获得一份ASIN列表,但它会返回所有这些列表。有人请求帮我用SQL来获取这个列表吗?

SELECT     asin
FROM       dbo.aboProducts
WHERE     (asin NOT IN
               (SELECT    aboProducts_1.asin
                FROM      dbo.aboProducts AS aboProducts_1 INNER JOIN
                          dbo.LowestPrices ON aboProducts_1.asin = dbo.LowestPrices.productAsin
                WHERE    (dbo.aboProducts.amzLive = 'true') AND 
                         (dbo.LowestPrices.priceDate < DATEADD(day, - 1, GETDATE()))))

2 个答案:

答案 0 :(得分:1)

我认为你的比较是错误的方式

尝试

SELECT     asin 
FROM       dbo.aboProducts 
WHERE     (asin NOT IN 
               (SELECT    aboProducts_1.asin 
                FROM      dbo.aboProducts AS aboProducts_1 INNER JOIN 
                          dbo.LowestPrices ON aboProducts_1.asin = dbo.LowestPrices.productAsin 
                WHERE    (dbo.aboProducts.amzLive = 'true') AND  
                         (dbo.LowestPrices.priceDate > DATEADD(day, - 1, GETDATE()))))

答案 1 :(得分:0)

@ podiluska的回答是正确的。因为你正在使用

WHERE     (asin NOT IN

您希望通过

获取过去24小时内已更新的所有项目
dbo.LowestPrices.priceDate > DATEADD(day, - 1, GETDATE())

然后使用NOT IN子句将它们排除,这将为您提供过去24小时内未更新的所有项目。