我正试图从三个不同的表中检索数据。
表1套件_续
- 保存工具包唯一ID、工具包内容物部件号和工具包修订版本等。
| 试剂盒控制ID|试剂盒_CONT_部件编号|套件_续_修订版|套件_续_数量|
| - ------|- ------|- ------|- ------|
| 1个|美国广播公司|1个|第二章|
| 1个|DEF|1个|1个|
| 第二章|全球健康指数|1个|三个|
| 第二章|美国广播公司|1个|四个|
| 三个|美国广播公司|第二章|五个|
...
表2套件_部件编号
- 保存试剂盒唯一ID、试剂盒部件号和试剂盒版本等
| 试剂盒ID|套件_部件编号|套件_修订版|
| - ------|- ------|- ------|
| 1个|试剂盒-1|1个|
| 第二章|试剂盒-2|1个|
| 三个|试剂盒-1|第二章|
| 四个|试剂盒-3|1个|
...
表3部件编号_价格
- 保存部件编号、部件价格、价目表版本等
| 部件编号|部件编号_价格|价目表_修订版|
| - ------|- ------|- ------|
| 美国广播公司|五百|1个|
| DEF|七百|1个|
| 全球健康指数|九百|1个|
| 美国广播公司|五百五十|第二章|
| DEF|七百五十|第二章|
| 全球健康指数|九五零|第二章|
...
我需要一个查询返回:
| 套件_部件编号|试剂盒_CONT_部件编号|套件_续_数量|套件_修订版|部件编号_价格|价目表_修订版|
| - ------|- ------|- ------|- ------|- ------|- ------|
将所有KIT_CONT PN加入KIT_PN ON ID编号,其中每个套件的套件版本最高,将PN_Price加入PN = KIT_CONT_PN,其中每个PN的价格列表版本最高
Select
A.KIT_ID
A.KIT_PN,
B.KIT_CONT_PN,
B.KIT_CONT_QTY,
C.PN_PRICE,
C.PN_PRICELIST_REV
FROM Table2KIT_PN A WITH (NOLOCK)
left JOIN
Table1KIT_CONT B WITH (NOLOCK)
ON A.KIT_ID = B.KIT_CONT_ID
left JOIN
Table3PN_PRICE C WITH (NOLOCK)
On B.KIT_CONT_PN = C.PN
and B.KIT_CONT_REV = (Select Max(B.KIT_CONT_REV) FROM Table1KIT_CONT D where B.KIT_CONT_REV = D.KIT_CONT_REV )
这根本不起作用,我甚至还没有到只检索最大PN_PRICE的部分。
我已经尝试了在this link中找到的多个版本的查询,但似乎不能将所有这些信息 Package 到我的案例中。
任何帮助都将不胜感激。
1条答案
按热度按时间sshcrbum1#
因为你使用了nolock(即使不可分割,我假设你的答案需要MSSQL)。所以,你可以写一些如下:
我没有测试它,但它应该是好的。调整它为您的需要(字段/过滤器)