0

おはようございます、これは私が昨日した質問に似ています [質問]:日付に応じて最新の価格を取得するための SQL クエリ

最低価格表の最終更新日から 24 時間以内に更新されていない ASIN のリストを返す必要があります。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()))))
4

2 に答える 2

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()))))
于 2012-08-31T10:55:09.713 に答える
0

@podiluskaの答えは正しいです。使用しているので

WHERE     (asin NOT IN

過去 24 時間に更新されたすべてのアイテムを取得するには、次のようにします。

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

次に、NOT IN 句を使用してそれらを除外します。これにより、過去 24 時間に更新されていないすべてのアイテムが残ります。

于 2012-08-31T15:13:12.737 に答える