Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SQL заявка за получаване на най-новите цени, в зависимост от датата

Най-лесно би било да използвате CTE с ROW_NUMBER функция:

WITH CTE AS
(
  SELECT dbo.twProducts.title, dbo.LowestPrices.productAsin, dbo.twProducts.sku, 
       dbo.LowestPrices.tweAmzPrice, dbo.LowestPrices.price, dbo.LowestPrices.priceDate,
       RN = ROW_NUMBER()OVER( PARTITION BY productAsin ORDER BY priceDate DESC)
  FROM   dbo.aboProducts INNER JOIN
       dbo.LowestPrices ON dbo.aboProducts.asin = dbo.LowestPrices.productAsin 
       INNER JOIN dbo.twProducts ON dbo.aboProducts.sku = dbo.twProducts.sku
)
SELECT * FROM CTE WHERE RN = 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преименувайте SA акаунта в SQL Server (пример за T-SQL)

  2. SQL NOT IN не работи

  3. Има ли по-ефективни алтернативи на анонимните профили на ASP.NET 2.0?

  4. Могат ли параметризираните заявки да бъдат напълно уловени с помощта на DBCC INPUTBUFFER?

  5. Достъп само за четене до съдържанието на съхранената процедура