假设我们有以下的数据库表:数据库表中提取和链接提取的数据
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