This commit is contained in:
guanxiangwei
2026-08-27 11:27:47 +09:00
parent 1fead85505
commit 060b7bf1fa
16 changed files with 1321 additions and 22 deletions
@@ -0,0 +1,116 @@
# DJND4001 cde_sybt=209 続柄区分 × 性别(性別区分=047)分類
> 数据源:updsv7_opho_ci @ 192.168.1.72:5432
> 対象データ:大阪府立病院機構(OPHO = Osaka Prefectural Hospital Organization)
> 抽出日:2026-08-13
> 抽出条件:ccompkb='01' / cde_sybt='209' / CURRENT_DATE BETWEEN dstart AND dend
## 1. 辞書構成
- DJND4001 の `cde_sybt=209` = **親族続柄区分**(続柄コード値テーブル)
- DJND4001 の `cde_sybt=047` = **性別区分**(性別コード値テーブル、cde_val:1=男 / 2=女)
- DJND4002 の `cde_sybt=209` 定義:`nme4=性別`、`inp4='047'` → 209 の `dta4` フィールドは **047 の cde_val を参照** する形になっている
つまり 209 の各続柄コードの `dta4` には `1`(男) / `2`(女) / NULL(不分) のいずれかが入る。
## 2. 性别=男(`dta4='1'`)— 9 件
```
cde_val name dname
─────────────────────
04 父 父
06 兄 兄
07 弟 弟
10 祖父 祖父
13 長男 長男
14 次男 次男
15 三男 三男
16 四男 四男
17 五男 五男
```
## 3. 性别=女(`dta4='2'`)— 9 件
```
cde_val name dname
─────────────────────
05 母 母
08 姉 姉
09 妹 妹
11 祖母 祖母
18 長女 長女
19 次女 次女
20 三女 三女
21 四女 四女
22 五女 五女
```
## 4. 性别未設定(`dta4 IS NULL`)— 5 件
```
cde_val name dname
─────────────────────
01 本人 本人
02 配偶者 配偶者
03 子 子
12 孫 孫
23 その他 その他
```
意味:
- `01 本人` — 続柄角色が本人のため、性別項目は中立(本人自身の性别を見る)
- `02 配偶者` — 配偶者の性別は個別具体(男/女 両用可)、角色には含めない
- `03 子` — 子が男/女どちらでもあり得るため、長男/次男/.../長女/次女/... で個別表現
- `12 孫` — 上記と同じ(孫も男女両用)
- `23 その他` — 兜底
## 5. 集計
| 区分 | 件数 |
| -------------- | ---- |
| 男(dta4='1') | 9 |
| 女(dta4='2') | 9 |
| 不分(NULL) | 5 |
| **合計** | **23** |
## 6. 関連 SQL
### 6.1 一発で全件(男/女/不分)を分類
```sql
SELECT
CASE
WHEN dta4 = '1' THEN '1_男'
WHEN dta4 = '2' THEN '2_女'
ELSE '3_不分'
END AS sex_group,
cde_val, name, dname
FROM djnd4001
WHERE ccompkb = '01'
AND cde_sybt = '209'
AND CURRENT_DATE BETWEEN dstart AND dend
ORDER BY sex_group, cde_val;
```
### 6.2 性别=女のみ抽出(本資料 §3)
```sql
SELECT cde_val, name, dname
FROM djnd4001
WHERE ccompkb = '01'
AND cde_sybt = '209'
AND dta4 = '2'
AND CURRENT_DATE BETWEEN dstart AND dend
ORDER BY cde_val;
```
### 6.3 4002 側の関連定義を確認
```sql
-- 209 の inp4 が本当に '047'(性別区分)を参照しているか
SELECT nme4, inp4
FROM djnd4002
WHERE ccompkb = '01' AND cde_sybt = '209'
AND CURRENT_DATE BETWEEN dstart AND dend;
-- → nme4='性別', inp4='047'
```