根据SQL Server中的最近日期插入记录

时间:2016-07-08 12:31:17

标签: sql-server

我有两张表Table 1Table 2

如下图所示

enter image description here

表1是主表。

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

2 个答案:

答案 0 :(得分: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

答案 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

我认为如果存在平局,这将随机挑选,因此您可能需要考虑这一点。