2012-07-28 99 views
0

我有2個表。所有的ID都包含在表1中(Tbl_Distributor)。第二張桌子有所有的名字。從一個表插入值到另一個檢查編號

我想根據id將所有名稱添加到第一個表。

我的選擇查詢如下。

enter image description here

INSERT INTO dbo.Tbl_Distributor(Giv_Name) where dealercode= a.dealercode 

SELECT a.dealercode,d.nameinfull 
FROM dealerplacement a,dealer d 
where a.dealercode= d.dealercode 
order by a.dealercode ASC 

這將返回nameinfulldealercode。我想將此nameinfull添加到Tbl_Distributor

請幫我解決這個問題。

+0

我們沒有足夠的信息。請從每個表中提供2-3個示例行,以及期望的結果示例。 – ErikE 2012-07-28 07:29:37

+0

我更新我的問題。請檢查它。 – TRS 2012-07-28 07:41:51

回答

2
UPDATE R 
SET Giv_Name = D.FirstName 
FROM 
    dbo.Tbl_Distributor R 
    INNER JOIN dbo.Dealer D 
     ON R.Dis_ID = D.DealerCode 
-1

這裏不能使用INSERT。你需要使用更新。我會用遊標做這樣的任務。

declare @id int, @name varchar(1000) 
DECLARE c CURSOR FOR 
SELECT a.dealercode,d.nameinfull 
FROM dealerplacement a,dealer d 
where a.dealercode= d.dealercode 
order by a.dealercode ASC 

OPEN c 

FETCH NEXT FROM c 
INTO @id, @name 

WHILE @@FETCH_STATUS = 0 
BEGIN 

update Tbl_Distributor set Giv_Name = @name where dealercode = @id 

FETCH NEXT FROM c 
INTO @id, @name 
end 

CLOSE c; 
DEALLOCATE c; 

而且,我會用加入select語句:

SELECT a.dealercode,d.nameinfull 
FROM dealerplacement a inner join dealer d 
on a.dealercode= d.dealercode 
order by a.dealercode ASC 
+0

遊標是在這裏提供建議的*最後*的東西。一個可怕的解決方案。 – ErikE 2012-07-28 07:39:35

+0

Noooo!不是遊標! – 2012-07-28 07:40:26

相關問題