このコードはいつも私を悩ませてきました.私は2つのトレーニングコースを持っています.どの従業員がそれらを受講したかの記録を見つけようとしています.コードは次のとおりです.
SELECT O896IA_VEMPPRSA.EMP_NA, O867IA_VTRAING.SYS_EMP_ID_NR, O867IA_VTRAING.REG_NR,
O867IA_VTRAING.DIS_NR, O867IA_VTRAING.TNG_SYS_NR
FROM O896IA_VEMPPRSA INNER JOIN O867IA_VTRAING ON O896IA_VEMPPRSA.SYS_EMP_ID_NR =
O867IA_VTRAING.SYS_EMP_ID_NR
WHERE (((O896IA_VEMPPRSA.EMP_EMT_STS_CD)<>"T"))
GROUP BY O896IA_VEMPPRSA.EMP_NA, O867IA_VTRAING.SYS_EMP_ID_NR, O867IA_VTRAING.REG_NR,
O867IA_VTRAING.DIS_NR, O867IA_VTRAING.TNG_SYS_NR;
TNG_SYS_NR 1095 または 1743 を見つける必要があります。レコードがある場合は Y が必要で、ない場合は N を表示する必要があります。
名前、ID、Reg、Dis、1095 Y または N、1743 Y または N を表示する必要があります。したがって、両方のコースを受講した場合、すべてのデータを含む 1 つの行と、1743 および 1095 の Y が必要です。従業員が 1095 N 1743 の Y と 1095 Y 1743 の N を 2 回リストした場合、両方を取得した場合。
+-----------------------------------+--------------------------------+--------+--------+------+------+
| EMP_NA | SYS_EMP_ID_NR | REG_NR | DIS_NR | 1095 | 1743 |
+-----------------------------------+--------------------------------+--------+--------+------+------+
| AMOS, SHARNELE | 1531218 | 20 | 10 | N | Y |
| AMOS, SHARNELE | 1531218 | 20 | 10 | Y | N |
| ANDERSON JERNAGIN, SHERRY | 0354362 | 25 | 80 | N | Y |
| ANDERSON JERNAGIN, SHERRY | 0354362 | 25 | 80 | Y | N |
| BAILEY, EDWARD | 0070433 | 20 | 10 | N | Y |
| BAILEY, EDWARD | 0070433 | 20 | 10 | Y | N |
+-----------------------------------+--------------------------------+--------+--------+------+------+