2016-07-08 14 views
-1

私は2つのテーブルTable 1Table 2を持っています。SQL Serverで最近の日付に基づいてレコードを挿入する

enter image description here

表1はマスターテーブルであるこの写真に示されています

表1のデータを販売日に基づいて挿入する必要があります。 ProductIDは表2の主キーです。たとえば、表1の製品ID 100276408の場合、直近の発売日は2015年11月11日です。商品ID 100276409の場合、直近の発売日は2014年17月8日です。商品ID 100276400の直近の発売日は、2011年7月7日です。これらの3つのレコードを表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 

私はあなたがそれについて考えることをお勧めしますので、ネクタイがある場合、これはランダムに選択されますと思います。

関連する問題