两表名称为A和B,内容为下图:
需对比的列为:inv_no,wstation_no,st_no,mat_no,p_unit,p_quan,p_weight,avg_cost,p_avg_cost,virt_if,em_if
(其实就是VER_NO,LINE_NO,LINE_ID这三列可以忽略)
条件:
1、mat_no这个列,A表中存在,B表不存在(B表存在而A表不存在)。
可以用两个临时表对比,并且一起显示,如下图。(A表存在,而B表不存在)
2、如A和B表都同时存在相同的MAT_NO,请列出该相同MAT_NO行其他不同的地方,并显示。
注释:
其实就是一个产品的BOM(物料清单),inv_no字段为成品,mat_no字段是材料名称。
问题症结在于,材料可能会随机变动,变动在SQL表里体现的方式是新增或者删除。现在需要将变动前和变动后的数据进行对比,显示出变动的是什么地方。
1、是新增材料还是减少材料,如果是新增的话,是新增了什么东西。(减少亦同)
2、是否修改,修改了哪个字段
恳请各位前辈帮忙,跪谢。
SQL 两个相同结构表对比内容,并显示差异。
答案:3 悬赏:0
解决时间 2021-02-20 11:36
- 提问者网友:朱砂泪
- 2021-02-19 21:56
最佳答案
- 二级知识专家网友:山鬼偶尔也合群
- 2021-02-19 23:29
大概能明白的你的意思,你需要一个可以记录商品参数变更的历史轨迹.
这个很简单,在调整的时候,插入调整的数据进去就好了.正就加加 负就减
你每次查询的时候分类做group by 就好了.
我之前做的保险公司的保单续期缴费 大概就是这样的.
这个很简单,在调整的时候,插入调整的数据进去就好了.正就加加 负就减
你每次查询的时候分类做group by 就好了.
我之前做的保险公司的保单续期缴费 大概就是这样的.
全部回答
- 1楼网友:而你却相形见绌
- 2021-02-19 23:59
第一个比较简单,有个语句结构块可以解决;或者用 Exists加关联也行;
第二个看起来应该是要建立在一个历史数据比对上的,你说的这两个表一个是实时的,一个是历史的?如果是,那第二个的第1个问题直接比对就可以了,这个也好解决~
重点想要关注学习下第2个,这个以前我也遇到过这样的困扰,当时字段太多有好几百个,后来协商重点记录了十多个字段,是在Trigger里完成的。也是相当于没有找到终极方案~
- 2楼网友:单身小柠`猫♡
- 2021-02-19 23:50
select * from a where id not in( select a.id from a,b where a.列1=b.列1 and a.列2=b.列2,a.列3=b.列3)--这个是查出第一个表里单独存在的数据.也就是第二个表里不存在的数据
select * from b where id not in( select b.id from a,b where a.列1=b.列1 and a.列2=b.列2,a.列3=b.列3)--这个是查出第二个表里单独存在的数据.也就是第二个表里不存在的数据
注意:上面的三列只是简单的列出来而已..如果你有多列.就全部写出来..
比如有五列..就一直到列五..
执行两条语句.就可以看出a 表里b表没有数据,b表里a表没有的数据
--------------------------------------------------------------
晕死.麻烦老大你下次一次说清楚.......郁闷..写了一大堆..全没用了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯