【发布时间】:2014-01-26 07:22:55
【问题描述】:
我正在尝试从制造系统中获取一些信息,该系统会跟踪组装设备时使用的部件。所有数据都在同一个表、设备、模块和组件中。设备由模块和组件组成,两者都注册为具有序列号的组件(ASSY)。 COMP 列用于注册哪些组件进入模块,以及哪些组件和模块进入设备。 INVENTORY_ID 列跟踪哪个模块进入哪个设备。
基本的表结构是这样的:
SERIALNO ASSY ASSYREV COMP COMPREV ORDERNO ASSEMBLED_DATE_TIME INVENTORY_ID COMP_SERIALNUMBER
======== ==== ======= ==== ======= ======= ======================= ============= ==================
499222 M1 V005 C1 F NULL 2013-11-14 04:08:46.000 NULL 50879
499223 M1 V005 C1 F NULL 2013-11-14 04:11:30.000 NULL 50947
499224 M1 V002 C1 B NULL 2013-11-14 04:13:58.000 NULL 50939
502270 D1 A M1 V005 20532642 2013-11-15 09:10:47.000 499222 NULL
502277 D2 A M1 V002 20532641 2013-11-15 08:59:49.000 499224 NULL
502479 D3 A M1 V005 20532647 2013-11-15 09:32:15.000 499223 NULL
502270 D1 A C2 F 20532642 2013-11-15 09:10:47.000 NULL 43542
502270 D1 A M2 V011 20532642 2013-11-15 09:10:00.000 498644 NULL
所以,我的问题是,我需要获取有关带有 COMPREV F 的组件 C1 已组装到哪些设备中的信息(通过模块)。结果应如下所示。这可以通过单个查询来完成吗?
SERIALNO ASSY COMP COMPREV ORDERNO ASSEMBLED_DATE_TIME COMP_SERIALNO
======== ==== ==== ======= ======== ======================== =============
502270 D1 C1 F 20532642 2013-11-15 09:10:47.000 50879
502479 D3 C1 F 20532647 2013-11-15 09:32:15.000 50947
【问题讨论】:
-
你没有忘记在结果中描述
COMP_SERIALNO吗?
标签: sql sql-server tsql