2 tablo var. Birincisi fname
(ilk ad), lname
(soyadı) ve ikincisi, salutation
(Mr, Dr etc), fname
(ilk ad), mname
(orta isim), lname
(soyadı), benzersiz bir belirleyici içerir. ve bir tarih.SQL Server 2014 IN NOT IN
I Salutation
, fname
, mname
, lname
, diğer 2 tablolarda bilgilerden uid
, added
sonra damla ilk tablosunu içeren üçüncü bir tablo oluşturmak ve bu sütun kaldırma ikinci tablo yeniden yaratmak istiyoruz.
Bu benim ne var:
CREATE TABLE MyTable
(
Id int IDENTITY (1, 1) PRIMARY KEY,
Salutation varchar(20) NULL DEFAULT (NULL),
Fname varchar(30) NOT NULL,
Mname varchar(30) NULL DEFAULT (NULL),
Lname varchar(30) NOT NULL,
Uid uniqueidentifier NULL DEFAULT (NULL),
Added Date NOT NULL DEFAULT (getdate())
);
INSERT INTO MyTable (Fname, LName)
SELECT Fname, Lname
FROM TABLE1
Bu benim karıştı nerede:
INSERT INTO MyTable (Salutation, Fname, Mname, LName, Uid, Added)
SELECT
Salutation, Fname, Mname, LName, Uid, Added
FROM
Table2
WHERE
Fname, Lname NOT IN (SELECT Fname, Lname FROM Table1)
birisi çalıştığını böylece son INSERT
deyimi düzeltmek misiniz? WHERE
kelime
-
o sevmez
Fname, Lname
İlk birinden ilk o zaman ikinci tablodan eklemek gerekir mi?
Bu yaklaşımın 1000'den fazla kaydı kaçırdığını tespit ediyorum. Hala bu öneriyle oynuyorum ama şansın yok. Tablo 2'nin bazı satırlarda bir fname değeri olduğunu, ancak başka bir ad içermediğini fark ettim.Bir fname varsa, lname ekleyin, eğer bir selamlama ve lname varsa, herhangi bir satır sadece Salutation'dan birine sahipse veya diğer 3 isim alanlarını serbest bırakan isimler bu sonucu eklemez. Yanıtlamak için bu küçük metin kutusuna sahip olmak da çok yararlı değildir. –
@EssexMale: Cevabımı güncelledim, ancak ne aradığınızı% 100 gibi hissetmiyorum, bu yüzden orijinal yazılarınızı biraz daha ayrıntılı ve daha açık bir durum belirlemesiyle güncellemeniz gerektiğini düşünüyorum. – potashin