2016-07-08 102 views
-1

我有两个表Table 1Table 2在SQL Server中插入基于最近日期的记录

所示。在这个图象

enter image description here

表1是主表。

我需要根据销售日期从表1向表2插入数据。 ProductID是表2中的主键。例如,对于表1中的产品ID 100276408,最近的销售日期是2015年11月4日;产品ID为100276409,最近的销售日期为17/8/2014;返回产品ID 100276400,最近的销售日期是2016年7月7日。我需要将这三条记录插入到表2中。我想要的结果显示在表2中。我如何在SQL Server 2014中执行此操作? 谢谢你的时间和帮助。

回答

1

尝试这样,

INSERT INTO Table2 (
    ProductId 
    ,LastCheckDate 
    ,SaleDate 
    ,SaleStatusCode 
    ,SaleType 
    ) 
SELECT t.ProductId 
    ,t.LastCheckDate 
    ,t.SaleDate 
    ,t.SaleStatusCode 
    ,t.SaleType 
FROM (
    SELECT ProductId 
     ,LastCheckDate 
     ,SaleDate 
     ,SaleStatusCode 
     ,SaleType 
     ,row_number() OVER (
      PARTITION BY productid ORDER BY productid 
       ,saledate DESC 
      ) rn 
    FROM Table1 
    ) t 
WHERE t.rn = 1 
0

我想试试这个:

SELECT ProductID, LastCheckDate, SaleDate, SaleStatusCode, SaleType INTO Table1 
FROM (SELECT *, 
    ROW_NUMBER() OVER (PARTITION BY ProductID ORDER BY SaleDate DESC AS rk)) T 
WHERE rk = 1 

我认为这将随机挑选,如果有一个领带,所以你可能要考虑一下。