【发布时间】:2021-09-19 19:32:56
【问题描述】:
我有两个结构如下的表
create table PARENT(
pk varchar(255) not null,
ip_count int,
primary key(pk)
);
create table CHILD_INPUT(
pk varchar(255) not null,
pk_parent varchar(255),
error varchar(255),
primary key(pk)
);
CHILD_INPUT 表具有引用“PARENT”表的“pk”列的外键“pk_parent”。
以下是一些示例数据:
父表:
| PK | IP_COUNT |
|---|---|
| PK0001 | NULL |
| PK0002 | NULL |
CHILD_INPUT
| PK | PK_PARENT | ERROR |
|---|---|---|
| CPK001 | PK0001 | ERR1 |
| CPK002 | PK0001 | NULL |
| CPK003 | PK0001 | NULL |
| CPK004 | PK0001 | NULL |
| CPK005 | PK0001 | NULL |
| CPK006 | PK0002 | ERR |
| CPK007 | PK0002 | ERR |
| CPK008 | PK0002 | ERR |
我需要编写一个更新查询,如果“ERROR”列为 NULL,我必须使用子记录的计数来更新 PARENT 表的“ip_count”,即预期输出应如下所示:
| PK | IP_COUNT |
|---|---|
| PK0001 | 4 |
| PK0002 | 0 |
解释:PK0001 在子表中有 4 条记录,错误列设置为 NULL。 PK0002 子表中没有记录,错误设置为 NULL。
【问题讨论】:
标签: sql oracle group-by subquery