2011-03-03 58 views
0

我有一個叫做節點有4列,其中的數據會填充所有字段,除了緯度和長插入到與另一個表的具體值的表根據病情

TABLE(
    ID int not null 
    Column2 int not null 
    Column3 int not null 
    Column4 int not null 
    LAT float 
    LONG float 
) 

我有另一個表的表稱爲「測試」 3列與日期填充

TABLE 
( 
ID, 
    LAT 
    LONG 
) 

如果ID從測試的ID爲從節點LAT從測試的長值應插入到節點上的相應的匹配。

我嘗試一些像這樣的事情,但它給

INSERT INTO tblNode(x,y) 
SELECT tpn.Longitude,tpn.Latitude FROM dbo.Node n 
    JOIN test tpn 
    ON tpn.NodeID = n.NodeID 

錯誤 NULL值不能插入列「ID」,表

有人可以幫我這個查詢。

+0

請不要改變表/列名!您的ID爲NodeID,Lat/Long,然後是緯度/經度,然後是X/Y。表名是**節點**然後插入** tblNode ** ... – RichardTheKiwi 2011-03-03 01:59:08

回答

1

如果你正在創造新的記錄,您將包括ID

INSERT INTO tblNode(nodeID,x,y) 
SELECT tpn.nodeID, tpn.Longitude,tpn.Latitude FROM dbo.Node n 
    JOIN test tpn 
    ON tpn.NodeID = n.NodeID 

然而,看着你的問題仔細,你不想INSERT。你想要UPDATE

UPDATE n 
SET Lat = tpn.Longitude, Lon = tpn.Latitude 
FROM Node n 
JOIN test tpn ON tpn.NodeID = n.NodeID 
+0

感謝理查德,我得到它的工作更新。 – Pawan 2011-03-03 03:07:49