我有两张表Table 1
和Table 2
。
如下图所示
表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中执行此操作? 感谢您的时间和帮助。
答案 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
我认为如果存在平局,这将随机挑选,因此您可能需要考虑这一点。