sql - SQL 问题在同一个表中查找值
问题描述
尝试在 SQL 中使用自联接来查找表中的值并应用它。
她是我得到的:
+-----------------+-----+--------+------------+
| 实际输出 | | | |
+-----------------+-----+--------+------------+
| TRKID | 脸谱 | 新Fac | BAG_TRKID |
| 第449章 11 | 11 | 999 |
| 第473章 11 | 11 | 第737章
| 第477章 11 | 11 | 第737章
| 第482章 11 | 11 | 第737章
| 第737章 89 | 89 | |
| 期望输出 | | | |
| TRKID | 脸谱 | 新Fac | BAG_TRKID |
| 第449章 11 | 11 | 999 |
| 第473章 11 | 89 | 第737章
| 第477章 11 | 89 | 第737章
| 第482章 11 | 89 | 第737章
| 第737章 89 | 89 | |
+-----------------+-----+--------+------------+
这是下面的代码。我似乎无法得到我想要的桌子。Bag TrkID 的设施编号不会成为 TrkID 的新设施编号。
Select
TABLEA.TRKID,
TABLEA.FAC,
NVL(TABLEA.FAC, TABLEB.FAC) as NEWFAC,
TABLEA.BAG_TRKID
FROM
(
Select
HSD. TRKID,
HSD.NLPT as FAC,
SBPD.BAG_TRKID
From
HSD
LEFT JOIN
SBPD
ON
SBPD.BAG_TRKID = HSD. TRKID
Where
HSD.SCANDT BETWEEN ‘Yesterday’ and ‘Today’
) TABLEA
LEFT JOIN
(
Select
HSD. TRKID,
HSD.NLPT as FAC,
SBPD.BAG_TRKID
From
HSD
LEFT JOIN
SBPD
ON
SBPD.BAG_TRKID = HSD. TRKID
Where
HSD.SCANDT BETWEEN ‘Yesterday’ and ‘Today’
) TABLEB
ON
TABLEA.TRKID = TABLEB.BAG_TRKID
解决方案
也许像
select a.TrkID, a."Facility Number", a.BAG_TRKID, b.TrkID as "NEW Fac"
from tbl a
left join tbl b on (a.TrkID = b.trk_id_reference)
推荐阅读
- angular - 单击mat-panel-description时如何制作不要展开面板
- amazon-web-services - AWS Cognito:在 Auth.signIn 中出现错误(验证 amazon-cognito-identity-js 是否已链接)
- android - 错误 de firebase 无效的文档参考
- openmdao - InterpND for one dimension
- python - How do I get the values under cursor instead of coords?
- oracle - I'd like to return a single row in a query that joins two tables through a one to many relationship
- python - Python convert zip file to bytes stream
- html - What's the best way to unwrap tags with nokogiri?
- angular - Play An MP3 in Angular Using
- python - Python:从json中提取第二级到数据框