所以我有這個下 表表1
| 掐 | NAMA_PENSIUN | JNS_KELAMIN | ID_PTKP | NPWP_PENSIUN |
|---|---|---|---|---|
| 195605212010002 | 哈賈迪 | 拉基拉基 | K3 | 939766245522000 |
| 195402192010003 | 蘇蒂克諾 | 拉基拉基 | K1 | 937896346533000 |
| 196008142010004 | 阿德琳娜·胡邁拉 | 永久的 | TK0 | 937686259522000 |
| 196401012010005 | 雷特諾蘇班迪 | 拉基拉基 | TK2 | 917678275532000 |
| 195908302010006 | 嬰兒法伊里娜 | 永久的 | K3 | 982638279888000 |
表 2
| ID_PTKP | KET_PTKP | TARIF_PTKP |
|---|---|---|
| TK0 | Tidak Kawin - 0 唐貢干 | 54,000,000 |
| TK1 | Tidak Kawin - 1 Tanggungan | 58,500,000 |
| TK2 | Tidak Kawin - 2 唐貢干 | 63,000,000 |
| TK3 | Tidak Kawin - 3 Tanggungan | 67,500,000 |
表3
| TAHUN_PAJAK | NPWP_PENSIUN | PENGHSL_PENSIUN | NILAI_PTKP |
|---|---|---|---|
| 2021 | 939766245522000 | 750萬 | |
| 2021 | 937896346533000 | 450萬 | |
| 2021 | 937686259522000 | 400萬 |
我想從 TARIF_PTKP表 2更新表 3 中的 NILAI_PTKP ,但是表 3 具有與表 1 相同的識別符號,即 NPWP_PENSIUN,表 1 具有與表 2 相同的識別符號,即 ID_PTKP。從這個我應該使用什么語法?
uj5u.com熱心網友回復:
merge 是一種選擇:
SQL> merge into table3 c
2 using (select a.npwp_pensiun, b.tarif_ptkp
3 from table1 a join table2 b on a.id_ptkp = b.id_ptkp
4 ) x
5 on (c.npwp_pensiun = x.npwp_pensiun)
6 when matched then update set
7 c.nilai_ptkp = x.tarif_ptkp;
1 row merged.
SQL> select * From table3;
NPWP_PENSIUN NILAI_PTKP
------------------ ----------
939766245522000
937896346533000
937686259522000 54000000
SQL>
為什么只更新了一行?因為您發布的示例資料在table1和之間不匹配table2。
uj5u.com熱心網友回復:
已經解決了
UPDATE (SELECT pt.NILAI_PTKP A, tp.TARIF_PTKP B FROM PajakTahunan pt
JOIN MasterPensiun mp ON pt.NPWP_PENSIUN = mp.NPWP_PENSIUN
JOIN TarifPTKP tp ON mp.ID_PTKP = tp.ID_PTKP)
SET A = B;
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/408371.html
標籤:
上一篇:SQLORACLE錯誤:ORA-00905缺少關鍵字
下一篇:根據日期資料生成日期范圍資料組
