sql 合并和删除冗余行。假设您有一个表格,表示个人工作的日历和小时,并表示您要合并“

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 合并和删除冗余行。假设您有一个表格,表示个人工作的日历和小时,并表示您要合并“相关的知识,希望对你有一定的参考价值。

declare @personid int = 1900, @start date = '2/24/2014', @stop date ='3/2/2014';


merge people_schedules ps

using (
	select row_number() over ( partition by ps2.eventid, ps2.date order by ps2.uniqueid ) as row, ps2.uniqueid, ps2.personid, ps2.eventid, ps2.date, ps2.servicerequestid, 
		sum(ps3.labortimeregular) LaborTimeTotal,
		from People_Schedules ps2
		join People_Schedules ps3 on ps2.eventid=ps3.eventid and ps2.personid=ps3.personid and ps2.date=ps3.date
		where ps2.personid=@personid and ps2.date between @start and @stop
		group by ps2.uniqueid, ps2.personid, ps2.eventid, ps2.date
		having count(distinct ps3.uniqueid)>1
	) as data

on data.uniqueid = ps.uniqueid

when matched and data.row=1 then
	update set labortimeregular = LaborTimeTotal

when matched then
	delete 
	
;

以上是关于sql 合并和删除冗余行。假设您有一个表格,表示个人工作的日历和小时,并表示您要合并“的主要内容,如果未能解决你的问题,请参考以下文章

在 PL/SQL 中合并行

el-table动态获取数据合并行列

DataTable中怎样将重复的数据合并

如何将 2 个 select 语句合并为一个?

优化(删除冗余和合并)CSS 的工具? [关闭]

SQL2000数据库中合并两行相同条件的值到列中怎么操作?