2016-07-08 3 views
-1

Ich habe zwei Tabellen Table 1 und Table 2.Einfügen von Datensätzen basierend auf einem aktuellen Datum in SQL Server

in diesem Bild gezeigt

enter image description here

Tabelle 1 ist die Haupttabelle.

Ich muss basierend auf dem Verkaufstermin Daten in Tabelle 2 aus Tabelle 1 einfügen. ProductID ist der Primärschlüssel in Tabelle 2. Beispielsweise ist für Produkt-ID 100276408 in Tabelle 1 das letzte Verkaufsdatum 11/4/2015; für Produkt-ID 100276409 ist das letzte Verkaufsdatum der 17/8/2014; Produkt-ID 100276400, das letzte Verkaufsdatum ist der 07.07.2016. Ich muss diese drei Datensätze in Tabelle 2 einfügen. Das gewünschte Ergebnis wird in Tabelle 2 gezeigt. Wie mache ich das in SQL Server 2014? Vielen Dank für Ihre Zeit und Hilfe.

Antwort

1

wie diese versuchen,

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

Ich würde dies versuchen:

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 

Ich denke, das zufällig wählen wird, wenn es ein Unentschieden, so dass Sie darüber nachdenken möchten.

Verwandte Themen