假設我們有以下的數據庫表:數據庫表中提取和鏈接提取的數據
CREATE TABLE #nodes(reporter varchar(10), groupname varchar(10), node varchar(20))
CREATE TABLE #nodes_extract(id int IDENTITY, min_node varchar(20), count_nodes int, descr varchar(10));
CREATE TABLE #nodes_histo(reporter varchar(10), groupname varchar(10), node varchar(20), nodes_extract_id int)
數據示例:
INSERT INTO #nodes (reporter, groupname, node) VALUES ('rep1','group1','node1')
INSERT INTO #nodes (reporter, groupname, node) VALUES ('rep1','group1','node2')
INSERT INTO #nodes (reporter, groupname, node) VALUES ('rep1','group2','node3')
INSERT INTO #nodes (reporter, groupname, node) VALUES ('rep2','group1','node1')
INSERT INTO #nodes (reporter, groupname, node) VALUES ('rep2','group1','node4')
INSERT INTO #nodes (reporter, groupname, node) VALUES ('rep2','group2','node5')
INSERT INTO #nodes (reporter, groupname, node) VALUES ('rep3','group1','node5')
INSERT INTO #nodes (reporter, groupname, node) VALUES ('rep3','group1','node6')
INSERT INTO #nodes (reporter, groupname, node) VALUES ('rep3','group2','node7')
我們的一些數據提取到#nodes_extract
INSERT INTO #nodes_extract
SELECT min(node), count(node), 'blabla'
FROM #nodes
GROUP BY reporter, groupname
現在我想從#nodes插入所有信息到#nodes_histo並添加nodes_extract_id 預期結果#nodes_histo:
reporter groupname node nodes_extract_id rep1 group1 node1 1 rep1 group1 node2 1 rep1 group2 node3 4 rep2 group1 node1 2 rep2 group1 node4 2 rep2 group2 node5 5 rep3 group1 node5 3 rep3 group1 node6 3 rep3 group2 node7 6
您將如何實現目標? 是否可以不改變表結構?
非常感謝! kafe
請問您能解釋一下'reporter','groupname'和'node'的值是如何計算'node_extract_id'的數值? – 2013-02-26 06:49:45
@MahmoudGamal:它只是提取表中的一個自動增量ID .. – kafe 2013-02-26 07:01:52
OK,但表#'nodes_extract'中沒有節點'node2','node4'和'node6',因此它們沒有自動增量ID。你想如何在'#nodes_histo'表中插入id?或者,爲什麼他們應該分別給出你在期望結果'1','2'和'3'上顯示的ID? – 2013-02-26 07:19:27