2012-08-31 84 views
0

上午, 这类似于一个问题,我问昨天[提问]:SQL query to get latest prices, depending on the date一览表中没有更新在过去的24小时

我需要返回其尚未更新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())))) 

回答

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())))) 
0

@ podiluska的答案是正确的。由于您使用

WHERE  (asin NOT IN 

你想通过做

dbo.LowestPrices.priceDate > DATEADD(day, - 1, GETDATE()) 

让已经在过去24小时内更新的所有商品,然后使用NOT IN子句中排除,这将离开你所有项目在过去24小时内都没有更新过。

相关问题