SQL Server:主部件与子部件日期不一致查询问题
主/子部件EO_DATE不一致记录查询方案
在表ASC_PMA_TBL中:
- 主部件编号自动生成,子部件编号格式为主部件编号+“-”+两位数字(示例:主部件18245对应子部件18245-50)
- 所有部件均包含
EO_DATE日期时间字段,需查询主部件与对应子部件该日期字段值不一致的记录
遇到的限制与解决过程:
- 数据库中主、子部件无外键关联
- 转换日期字段为日期类型后无法直接使用别名,尝试子查询未解决需求,最终通过全局临时表实现目标
实现代码
SELECT PMA_PART_ONLY, CONVERT(DATE,PMA_EFFECT_DATE_OFF) As 'EO_DATE' INTO ##MParts FROM ASC_PMA_TBL WHERE (PMA_PROC_CODE = 'M') AND (PMA_EFFECT_DATE_OFF IS NOT NULL) SELECT PMA_PART_ONLY, CONVERT(DATE,PMA_EFFECT_DATE_OFF) As 'EO_DATE', SUBSTRING(PMA_PART_ONLY,0,CHARINDEX('-',PMA_PART_ONLY,0)) As 'MP_NO' INTO ##SParts FROM ASC_PMA_TBL WHERE (PMA_PROC_CODE = 'S') AND (PMA_EFFECT_DATE_OFF IS NOT NULL) SELECT ##SParts.PMA_PART_ONLY As 'SUB_PART_NO', ##MParts.EO_DATE As 'M_PART_DATE', ##SParts.EO_DATE As 'S_PART_DATE' FROM ##MParts INNER JOIN ##SParts ON ##SParts.MP_NO = ##MParts.PMA_PART_ONLY WHERE (##MParts.EO_DATE <> ##SParts.EO_DATE) ORDER BY SUB_PART_NO DESC DROP TABLE ##MParts DROP TABLE ##SParts
内容的提问来源于stack exchange,提问作者TonyB1983
相关产品推荐
相关产品推荐

