两个dataset 比较数据差异

放逐之刃--瑞文 2020-07-21 09:45:45
A1表
AA 15
BB 10
CC 7

B1表
AA 19
CC 5

用A1表来当主表的话,列出来的差异就是
AA 4
BB -10
CC -2

就意味这 B1表中AA 比主表多4个,BB比主表少10个,CC比主表少2个

我现在能想到的就是在后台循环对比 ,数据比较多,耗时间,有没有什么简便的方法,SQL语句也可以



...全文
1246 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复 1
引用 12 楼 正怒月神 的回复:
[quote=引用 9 楼 ManBOyyy 的回复:][quote=引用 5 楼 放逐之刃--瑞文 的回复:][quote=引用 4 楼 正怒月神 的回复:]很久不见的ID啊。 你稍微改一下,我是A表-B表
select * from u1;
select * from u2;

select u1.name,(u1.tid-isnull(u2.tid,0)) as tid from u1
left join u2 on u1.name=u2.name
是啊 从深圳回了武汉,什么都不如人意,浑浑噩噩的,很久都没上来过了[/quote] 你這種方法還是有弊端,比如A表沒有,B表有,應該先全連接tid,然後再匹配才對的[/quote] 这个问题要看,你是什么业务逻辑了。 是以哪张表为基准,还是彼此的差集都要找到。 就一个思路。[/quote] 谢谢大家啦,给了我思路,然后按照思路我自己写了存储过程,用游标和临时表写出来了
正怒月神 2020-07-21
  • 打赏
  • 举报
回复
引用 7 楼 放逐之刃--瑞文 的回复:
[quote=引用 6 楼 正怒月神 的回复:][quote=引用 5 楼 放逐之刃--瑞文 的回复:] 是啊 从深圳回了武汉,什么都不如人意,浑浑噩噩的,很久都没上来过了
软件行业,应该还是深圳发达吧。 怎么突然到回武汉了。[/quote] 是啊,我那个时候在深圳待的不开心,一个人孤身嘛,之前在武汉读的大学,在深圳两年就回来了,结果武汉出这么个事,工资也挺低的相对于深圳来说,也有想法在武汉定居[/quote] 慢慢来吧,现在大环境不好,大家都是在熬。 但只要自身努力,终归会有机会 的。
  • 打赏
  • 举报
回复
引用 6 楼 正怒月神 的回复:
[quote=引用 5 楼 放逐之刃--瑞文 的回复:] 是啊 从深圳回了武汉,什么都不如人意,浑浑噩噩的,很久都没上来过了
软件行业,应该还是深圳发达吧。 怎么突然到回武汉了。[/quote] 是啊,我那个时候在深圳待的不开心,一个人孤身嘛,之前在武汉读的大学,在深圳两年就回来了,结果武汉出这么个事,工资也挺低的相对于深圳来说,也有想法在武汉定居
正怒月神 2020-07-21
  • 打赏
  • 举报
回复
引用 5 楼 放逐之刃--瑞文 的回复:
是啊 从深圳回了武汉,什么都不如人意,浑浑噩噩的,很久都没上来过了

软件行业,应该还是深圳发达吧。
怎么突然到回武汉了。
  • 打赏
  • 举报
回复
引用 4 楼 正怒月神 的回复:
很久不见的ID啊。 你稍微改一下,我是A表-B表
select * from u1;
select * from u2;

select u1.name,(u1.tid-isnull(u2.tid,0)) as tid from u1
left join u2 on u1.name=u2.name
是啊 从深圳回了武汉,什么都不如人意,浑浑噩噩的,很久都没上来过了
正怒月神 2020-07-21
  • 打赏
  • 举报
回复
很久不见的ID啊。 你稍微改一下,我是A表-B表
select * from u1;
select * from u2;

select u1.name,(u1.tid-isnull(u2.tid,0)) as tid from u1
left join u2 on u1.name=u2.name
  • 打赏
  • 举报
回复

	SELECT a.Column1,(ISNULL(b.Num,0)-a.Num) Num FROM dbo.A1 a LEFT JOIN dbo.B1 b ON a.Column1=b.Column1
Bridge_go 2020-07-21
  • 打赏
  • 举报
回复


if object_id(N'tempdb..#temp1',N'U') is not null
   drop table #temp1;
select *  into #temp1 from [A] where 1 <> 1;
declare @Name varchar(10);
declare @CountA int;
declare @CountB int;
declare c1 cursor for select * from [A];
open c1;
fetch next from c1 into @Name, @CountA;
while @@FETCH_STATUS = 0
begin
  set @CountB = 0;
  select @CountB = [Count] from [B] where [Name] = @Name;
  insert into #temp1 values(@Name,@CountA-@CountB);
  fetch next from c1 into @Name, @CountA;
end
close c1;
deallocate c1;
select * from #temp1;
正怒月神 2020-07-21
  • 打赏
  • 举报
回复
引用 9 楼 ManBOyyy 的回复:
[quote=引用 5 楼 放逐之刃--瑞文 的回复:][quote=引用 4 楼 正怒月神 的回复:]很久不见的ID啊。 你稍微改一下,我是A表-B表
select * from u1;
select * from u2;

select u1.name,(u1.tid-isnull(u2.tid,0)) as tid from u1
left join u2 on u1.name=u2.name
是啊 从深圳回了武汉,什么都不如人意,浑浑噩噩的,很久都没上来过了[/quote] 你這種方法還是有弊端,比如A表沒有,B表有,應該先全連接tid,然後再匹配才對的[/quote] 这个问题要看,你是什么业务逻辑了。 是以哪张表为基准,还是彼此的差集都要找到。 就一个思路。
threenewbee 2020-07-21
  • 打赏
  • 举报
回复
看看这个 https://www.cnblogs.com/dachie/archive/2010/05/19/1739436.html
ManBOyyy 2020-07-21
  • 打赏
  • 举报
回复
你這種方法還是有弊端,比如A表沒有,B表有,應該先全連接name,然後再匹配才對的[/quote]
ManBOyyy 2020-07-21
  • 打赏
  • 举报
回复
引用 5 楼 放逐之刃--瑞文 的回复:
[quote=引用 4 楼 正怒月神 的回复:]很久不见的ID啊。 你稍微改一下,我是A表-B表
select * from u1;
select * from u2;

select u1.name,(u1.tid-isnull(u2.tid,0)) as tid from u1
left join u2 on u1.name=u2.name
是啊 从深圳回了武汉,什么都不如人意,浑浑噩噩的,很久都没上来过了[/quote] 你這種方法還是有弊端,比如A表沒有,B表有,應該先全連接tid,然後再匹配才對的
基于栅格空间的三维路径规划与轨迹平滑方法研究及其在无人机自主导航中的应用(Matlab代码实现)内容概要:本文围绕基于栅格空间的三维路径规划与轨迹平滑方法展开研究,重点探讨其在无人机自主导航中的具体应用。通过构建三维栅格地图对飞行环境进行建模,结合智能优化算法(如A*、Dijkstra或启发式搜索)实现初步路径规划,并引入轨迹平滑技术(如样条插值、贝塞尔曲线或优化算法)消除路径中的尖锐转折,提升飞行安全性与平滑性。研究涵盖复杂三维环境下的避障策略、路径成本函数设计、多约束条件处理以及算法性能对比分析,最终通过Matlab仿真验证所提方法的有效性与实用性。; 适合人群:具备一定编程基础和算法理解能力,从事无人机、机器人、自动驾驶或路径规划相关领域的科研人员及工程技术人员,尤其适合研究生及工作1-3年的研发人员。; 使用场景及目标:① 实现复杂三维环境下无人机的安全自主飞行路径规划;② 学习并掌握基于栅格的路径建模与搜索算法;③ 理解轨迹平滑技术在实际工程中的应用价值与实现方法;④ 借助Matlab代码进行算法仿真与性能评估,支撑科研或项目开发。; 阅读建议:建议读者结合Matlab代码实例,深入理解路径规划与轨迹平滑的算法细节,动手复现并调试程序,通过调整环境参数和算法参数观察结果变化,从而加深对理论方法与工程实践之间联系的理解。

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧