sqlserver多对多查询的实例(含代码)

本文介绍了如何在SQLServer中处理多对多查询,特别是针对需要获取每个内部编号最新状态的情况。通过创建视图筛选出C表中的最新状态记录,并在查询时对视图进行拼接,从而得到所有状态。这种方法适用于存在多个状态需要合并的情景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景如图:需要查询出每一个内部编号对应的设备在系统中的最新状态,主表为A
在这里插入图片描述
其中B表只含有其对应的编号,但是没有状态
在这里插入图片描述
其中C表中含有其对应的状态,但时含有多条状态,我们需要取其中最新的时间节点做为最新状态展示出去
在这里插入图片描述
在这里插入图片描述
大致类型如上图(灵魂画师),A中的1234分别需要查询C中的对应最新的状态
思路如下,从C表中做筛选,先筛选出最新的时间状态件,把他化作一个视图

select  * from
(    select
                    计划生产.工序,
                    制表日期,
                    计划生产.订单细则号,
					case when len(substring(计划投产.内部编号, 5, 30))<6
					then rtrim(ltrim(内部编号))
				else substring(计划投产.内部编号, 5, 30) 
					end as 内部编号,
                    row_number() over(partition
                by
                    内部编号
          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值