Oracle Sql : 当行值与另一行关联时显示结果?



我得到了一个表格如下,

INV_CODE  INV_NO     INV_STATUS   INV-DATE    INV-REF-CODE     INV_REF_NO    
DN       202001        3          02/01/20        SO             202002                    
DN       202002        1          03/01/20        SO             202001                        
INV      202001        0          03/01/20        DN             202002          
INV      202002        2          04/01/20        DN             202001          
DN       202003        1          05/01/20        SO            202005

在这里,我们得到了INV_CODE和 INV-REF-COD 作为 SO,DN,INV

仅获取具有 DN 且该 DN 在表中获得 INV 条目的 SO

我想显示如下结果

INV-REF-CODE   INV_REF_NO   INV_CODE     INV_NO    INV_REF_CODE2    INV_REF_NO 2
SO             202001        INV        202001       DN          202002
SO             202002        INV        202002       DN          202001    

谢谢

您可以使用自联接;这似乎是您想要的结果:

select t2.INV_REF_CODE, t1.INV_REF_NO, t1.INV_CODE, t2.INV_NO,
t1.INV_REF_CODE as INV_REF_CODE_2, t1.INV_NO as INV_REF_NO_2
from your_table t1
join your_table t2 on t2.INV_NO = t1.INV_REF_NO
and t2.INV_CODE = 'DN'
where t1.INV_CODE = 'INV';
INV_REF_CODE | INV_REF_NO | INV_CODE | INV_NO | INV_REF_CODE_2 | INV_REF_NO_2
:----------- | ---------: | :------- | -----: | :------------- | -----------:
SO           |     202001 | INV      | 202001 | DN             |       202002
SO           |     202002 | INV      | 202002 | DN             |       202001

数据库<>小提琴

相关内容

最新更新