根据setcode和task_id 分组,统计sz_autoinspect_yc表里的总数,赋值到对应的sz_autoinspect_task表里T_TOTAL_ABNORMAL(总问题数)字段; 统计sfcl为是的条数,赋值到sz_autoinspect_task表T_TOTAL_PROCESS(总处理数)字段。
时间: 2023-08-12 18:05:43 浏览: 39
好的,根据您的要求,可以使用如下SQL语句实现:
```
UPDATE sz_autoinspect_task AS t
SET t.T_TOTAL_ABNORMAL = (
SELECT COUNT(*) FROM sz_autoinspect_yc AS y
WHERE y.setcode = t.setcode AND y.task_id = t.task_id
),
t.T_TOTAL_PROCESS = (
SELECT COUNT(*) FROM sz_autoinspect_yc AS y
WHERE y.setcode = t.setcode AND y.task_id = t.task_id AND y.sfcl = '是'
);
```
这个SQL语句中,我们先使用两个子查询来分别统计总问题数和总处理数,然后通过UPDATE语句将这些值更新到对应的sz_autoinspect_task表中。其中,子查询中的条件是根据setcode和task_id进行筛选的。
相关问题
存储过程实现根据setcode和task_id 分组,统计sz_autoinspect_yc表里的总数,赋值到对应的sz_autoinspect_task表里T_TOTAL_ABNORMAL(总问题数)字段; 统计sfcl为是的条数,赋值到sz_autoinspect_task表T_TOTAL_PROCESS(总处理数)字段。
好的,这是一个关于存储过程的问题。根据你的要求,可以写一个类似下面的存储过程来实现:
```sql
CREATE PROCEDURE sp_statistic_task
@setcode VARCHAR(50),
@task_id INT
AS
BEGIN
-- 统计总数
DECLARE @total_abnormal INT
SELECT @total_abnormal = COUNT(*) FROM sz_autoinspect_yc WHERE setcode = @setcode AND task_id = @task_id
-- 统计sfcl为是的条数
DECLARE @total_process INT
SELECT @total_process = COUNT(*) FROM sz_autoinspect_yc WHERE setcode = @setcode AND task_id = @task_id AND sfcl = '是'
-- 更新sz_autoinspect_task表
UPDATE sz_autoinspect_task SET T_TOTAL_ABNORMAL = @total_abnormal, T_TOTAL_PROCESS = @total_process WHERE setcode = @setcode AND task_id = @task_id
END
```
这个存储过程接收两个参数:setcode和task_id。首先,统计sz_autoinspect_yc表中对应setcode和task_id的总数和sfcl为是的条数,然后通过UPDATE语句更新sz_autoinspect_task表中对应的T_TOTAL_ABNORMAL和T_TOTAL_PROCESS字段。
set_task_stack_end_magic(&init_task);
这段代码通常出现在 Linux 内核中,它调用了 `set_task_stack_end_magic()` 函数,并将 `init_task` 作为参数传递给该函数。
`set_task_stack_end_magic()` 函数用于在进程的栈尾部设置一个特殊的标记,用于检测栈溢出。在 Linux 内核中,每个进程都有自己的内核栈,用于在内核中运行时保存临时数据。当进程的栈溢出时,就会覆盖栈尾部的数据,进而破坏其他数据。为了检测栈溢出,内核会在进程的栈尾部设置一个特殊的标记(magic number),当栈溢出时,这个标记就会被覆盖。进程在进行系统调用时,内核会检查这个标记是否被破坏,如果被破坏了,就说明栈溢出了,内核会终止进程并打印相关信息。
在上述代码中,`init_task` 是内核中的一个进程结构体,它表示系统中的第一个进程(也即 init 进程)。通过调用 `set_task_stack_end_magic()` 函数,可以为 `init_task` 进程的栈尾部设置一个栈溢出检测标记。