【数据库】SQLServer报修表,维修表,反馈表三表连查

yumo6661个月前 (03-23)技术文章16

大家好,我是雷工!

最近参与的一个SCADA项目,客户要求增加设备维保的功能,对设备的报修,维修,反馈过程进行记录查询,进一步提升企业的信息化能力。

该过程的实现是通过创建三个表分别记录报修-维修-反馈的过程流转信息,由不同环节的的人员分别入录相关信息。查询时通过选择报修时间段,设备名称查询对应时间段内该设备的维保情况。

为了直观查看设备报修所处的环节及维修情况,通过维修单号关联查询三个表格信息并展示。

下面简单记录三表连查的方法及简单的应用示例。

一、创建相关数据表

1、创建报修单记录表(BXD)记录报修单的信息


2、创建维修单记录表(WXD)记录维修单的信息

3、创建反馈单记录表(FKD)记录对维修结果的反馈信息


二、开发信息入录界面

1、报修入录弹窗


2、维修入录界面

3、反馈处理界面


三、数据查询语句

数据的查询涉及三表连查,此处采用的方法是左外连接(LEFT JOIN ON)。

此方法是以左表为主表,依次向右匹配,匹配到,返回结果,匹配不到,则返回NULL值填充。

SQL语句如下:

SELECT

BXD.设备名称,BXD.班组长,BXD.单号,BXD.报修时间,BXD.报修人,BXD.维修班,BXD.问题描述,BXD.备注,BXD.维修序列,

WXD.值班员,WXD.班组长,WXD.报修人,WXD.接报时间,WXD.修复人,WXD.修复时间,WXD.验收人,WXD.维修人,WXD.问题描述,WXD.故障分析,

FKD.班组长,FKD.反馈时间,FKD.反馈人,FKD.运行班,FKD.处理意见,FKD.备注

FROM [SCADASQL].[dbo].[BXD]

LEFT JOIN [SCADASQL].[dbo].[WXD] ON BXD.单号= WXD.单号

LEFT JOIN [SCADASQL].[dbo].[FKD] ON WXD.单号= FKD.单号

where BXD.设备名称 like '%清水泵%' AND BXD.报修时间 between '2023-05-18' AND '2023-05-18'

ORDER BY 单号


四、查询结果

1、SQLServer数据库查询结果

2、SCADA内查询结果


结束语:

随着工业互联网的发展,SCADA系统在传统实时数据采集和监督控制的基础上,不断衍生出更多信息化,智能化应用,不仅可以对生产环节数据实时监控和综合调度,还可以较大地提升企业信息化水平和生产管理水平,促进企业快速发展。

相关文章

面试官:你们项目中用到多表关联了吗?

我们来看这样一个面试场景。面试官:“在你们的项目中,用到多表关联查询了吗?”候选人:“嗯,每个项目都用到了。”面试官听了似乎有些愤怒,说:“多表关联查询这么慢,为什么你们还要用它,那你们项目的性能如何...

为Access数据表设置关联方式

在Access功能区中选择【数据库工具】选项卡=>【关系】=>【关系】,可进入建立数据表之间关联方式的关系设计视图。接着就弹出了[显示表]对话框,双击要建立关联方式的数据表,将其加入Acc...

thinkphp中是单个表挨个查询还是关联查询更好

在ThinkPHP中选择单表多次查询或关联查询需根据具体场景权衡,以下是关键考量因素及建议:一、单表多次查询的优势与适用场景高并发场景单表查询可减少数据库锁竞争和计算压力,尤其在QPS较高时(如上千级...