SQL 服务器查询以获取下一行中的主要数据及其子组件

SQL Server query for getting the Main Data and it sub Components in next next row

我有一个 table ComponentMaster,其中包含 IDMainAssetIDSerialNo 列。

AssetIDAssetMaster中的主键table和ComponentMaster中的外键。在 AssetMaster 中有列 AssetIDSerialno

我的要求是第一行需要 MainAssetID,下一行需要 MainAssetID 的子组件。

ComponentMaster:

ID    MainAssetID     SerialNo
---------------------------------
1        24          4561334054   
2        24          4561334099   
3        24          4561334158

AssetMaster:

AssetID     SerialNo
----------------------------
24          YLCD002160

我需要输出为

SerialNo
----------
YLCD002160
4561334054  
4561334099  
4561334158

有人可以指导我这样做吗?

试试这个:

 Select SerialNo From (
 Select AssetId, SerialNo, 1 as n From AssetMaster
 Union all
 Select MainAssetId, SerialNo, 2 as n From ComponentMaster) a
 Order by  AssetId, n, SerialNo

非常感谢您的建议 Giorgi Nakeuri。你的建议对我帮助很大。我使用以下查询解决了同样的问题。

SELECT * 
FROM 
    (SELECT 
         AssetID, 'MAIN ASSET' as TYPE, serialno 
     FROM 
         VW_COMPONENETS --(THIS WILL HAVE THE MAIN ASSETID SERIALNO ALONE

     UNION ALL

     SELECT 
         C.RF_AssetID, 'COMPONENT' as TYPE, SERIALNO 
     FROM 
         dbo.COMPONENTMASTER C
     LEFT OUTER JOIN
         dbo.AssetMaster A ON C.RF_COMPONENT = A.RF_SerialNo) tbl  
 ORDER BY
     AssetID,TYPE DESC

此致,

对苏雷什