Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Pilih dari satu tabel dan masukkan ke dua tabel lainnya

Saya pikir Anda menginginkan sesuatu seperti di bawah ini. Tabel sementara @Output akan menangkap identitas yang disisipkan untuk tabel pertama, kemudian ini dapat digunakan saat menyisipkan ke tabel kedua.

DECLARE @Output TABLE 
(       FirstTableID    INT NOT NULL PRIMARY KEY, 
        WarehouseCode   VARCHAR(3), 
        CustomerCode    VARCHAR(4)
)
INSERT INTO FirstTable (WarehouseCode, CustomerCode)
OUTPUT inserted.FirstTblID, inserted.WarehouseCode, inserted.CustomerCode INTO @Output
SELECT  DISTINCT LEFT(LocationCode, 3) [WarehouseCode], CustomerCode
FROM    [PrimaryTable]

INSERT INTO SecondTable (ItemCode, LocationCode, CustomerCode, FirstTblID)
SELECT  p.ItemCode,
        p.LocationCode,
        p.CustomerCode, 
        o.FirstTableID
FROM    [PrimaryTable] p
        INNER JOIN @Output o
            ON LEFT(LocationCode, 3) = WarehouseCode
            AND p.CustomerCode = o.CustomerCode



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 5 Manfaat Pemantauan Kinerja Basis Data Proaktif

  2. Apa jenis SQL yang benar untuk menyimpan .Net Timespan dengan nilai> 24:00:00?

  3. Solusi untuk:Simpan pembaruan, sisipkan, atau hapus pernyataan yang memengaruhi jumlah baris yang tidak terduga (0)

  4. Kembalikan Nama Server Lokal di SQL Server dengan @@SERVERNAME

  5. Hapus skrip SQL Server 2008