2015-09-11 82 views
0

我有一個表,其中有一些情況下,我們正在丟失位置記錄location = 'WHS1'。你會注意到底部2 "TCODE's"沒有location = WHS1記錄 我正在考慮做一個不同的選擇TCODEInvYear並獲得獨特的記錄,然後檢查以查看位置'WHS1'不存在。SQL Server插入缺失的記錄與選擇不同或左連接

我很綠,在此,你的任何幫助

TCODE InvYear Location StartingInv Adjustments Damages EndingInv 
NY530-1 2015 BRX   625   NULL  NULL 709 
NY530-1 2015 LAN   365   NULL  NULL 365 
NY530-1 2015 WHS1  432   NULL  NULL 442 
NY530-2 2015 BRX   309   NULL  NULL 413 
NY530-2 2015 LAN   94   NULL  NULL 96 
NY530-2 2015 WHS1  1310  NULL  NULL 1344 
NY547-1 2015 BRX   0   NULL  NULL 0 
NY547-2 2015 BRX   0   NULL  NULL 0 
+0

你能告訴我們你需要什麼嗎?就像給出一個期望的結果的例子。所以我們可以給你所需的SQL查詢。 –

回答

2
INSERT INTO TableA (TCODE , InvYear, Location ,StartingInv ,EndingInv) 
SELECT DISTINCT TCODE , InvYear, 'WHS1', 0 , 0 
FROM TableA A 
WHERE NOT EXISTS (SELECT 1 
        FROM TableA 
        WHERE A.TCode = TCode 
        AND A.InvYear = InvYear 
        AND Location = 'WHS1') 
0

下面是我們如何解決它。 /****** BY Vincent ******/ INSERT INTO [FlynnEMB]。[dbo]。[TransferInv](TCODE,InvYear,Location,StartingInv,EndingInv) SELECT t。*,'WHS1 「作爲位置,0作爲StartingInv,0作爲EndingInv FROM(

SELECT DISTINCT [TCODE] ,[InvYear]

FROM [FlynnEMB] [DBO]。[TransferInv]

除了(從[FlynnEMB]。[dbo]。[TransferInv] where Location ='WHS1'))t