「資料清理」修訂間的差異

出自ProgWiki
跳至導覽 跳至搜尋
(新頁面: ==用途== * 將跨Table或是樹狀或網狀Table的資料,根據資料的特性,清理成一個或數個,簡化過的Table。這樣在使用時(如List列表)的效能會快...)
 
→‎作法
行 8: 行 8:
 
[ID] [varchar](12) ,
 
[ID] [varchar](12) ,
 
[col2] [varchar](12) ,
 
[col2] [varchar](12) ,
[col3] [int](12) NULL,
+
[col3] [int] NULL,
[col4] [int](12) NULL
+
[col4] [int] NULL
 
) ON [PRIMARY];
 
) ON [PRIMARY];
 
</source>
 
</source>

於 2008年6月17日 (二) 15:35 的修訂

用途

  • 將跨Table或是樹狀或網狀Table的資料,根據資料的特性,清理成一個或數個,簡化過的Table。這樣在使用時(如List列表)的效能會快很多。

作法

1.先建立【目標的Table】

CREATE TABLE [dbo].[Table1](
	[ID] [varchar](12) ,
	[col2] [varchar](12) ,
	[col3] [int] NULL,
	[col4] [int] NULL
) ON [PRIMARY];

2.先Select出必要的PK與FK欄位Insert到【目標的Table】

INSERT INTO Table1 (ID, col2) SELECT (ID, col2) from Table2;

3.依序以Update方式,將整理好的資料Update到【目標的Table】

update Table1
	set col3=sum(b.SubTotal)
	from  Table1 as a, Table3 as b
        where a.ID=b.ID;
 
update Table1
        set col4=max(b.SubTotal)
	from  Table1 as a, Table3 as b
        where a.ID=b.ID;