星期一, 4月 08, 2024

[SQL] 彙總函數應用 - 資料分組

要把 txt 檔案匯入系統內做資料檢核,txt 檔案內資料如下圖示意,希望能透過 TSQL 把員工和眷屬群組在一起


使用視窗彙總函數跑 Running Total 來達到該需求

DECLARE @Temp Table (RowNO char(7) , FullName nchar(8) , FName nchar(8))
INSERT INTO @Temp (RowNO , FullName , FName) VALUES('0000001' , N'員工一' , N'')
INSERT INTO @Temp (RowNO , FullName , FName) VALUES('0000002' , N'' , N'眷屬一_1')
INSERT INTO @Temp (RowNO , FullName , FName) VALUES('0000003' , N'' , N'眷屬一_2')
INSERT INTO @Temp (RowNO , FullName , FName) VALUES('0000004' , N'員工二' , N'')
INSERT INTO @Temp (RowNO , FullName , FName) VALUES('0000005' , N'員工三' , N'')
INSERT INTO @Temp (RowNO , FullName , FName) VALUES('0000006' , N'' , N'眷屬三_1')

SELECT * , 
	SUM(IIF([FullName] = '' , 0 , 1)) 
	OVER 
		(
			ORDER BY RowNO
			ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
		) AS GroupNO
FROM @Temp

沒有留言:

張貼留言