上午, 这类似于我昨天提出的问题[问题]: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()))))
答案 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小时内未更新的所有项目。