gpt4 book ai didi

mysql - 公式中省略了最后一条记录

转载 作者:行者123 更新时间:2023-11-29 20:48:45 24 4
gpt4 key购买 nike

我编写了一些逻辑来确定 kcode(医生账单)对于患者是否正确。我编写了一些逻辑来循环记录,并将值得 kcode 的正确 CP(护理提供者)的 ID 放入列中。由于某种原因,最后一条记录或最后 2 条记录不遵循逻辑。这是我的逻辑代码(在光标内):

OPEN kcode_count;
kcode_loop: LOOP

FETCH kcode_count INTO dbPTNT_ID, dbCP_ID, dbSEEN, holder, dbDATE, holder2;
IF done THEN
LEAVE kcode_loop;
END IF;

IF dbPTNT_ID <> setPTNT_ID THEN
IF setPTNT_ID <> 0 THEN
UPDATE tmp_kcodes
SET SHOULD_GET = setCP_ID
WHERE setPTNT_ID = PTNT_ID;
END IF;
SET setPTNT_ID = dbPTNT_ID;
SET setCP_ID = dbCP_ID;
SET setSEEN = dbSEEN;
SET setDATE = dbDATE;

ELSEIF dbSEEN > setSEEN THEN
SET setCP_ID = dbCP_ID;
SET setSEEN = dbSEEN;
SET setDATE = dbDATE;

ELSEIF dbSEEN = setSEEN THEN
IF dbDATE < setDATE THEN
SET setCP_ID = dbCP_ID;
SET setSEEN = dbSEEN;
SET setDATE = dbDATE;
END IF;
END IF;


END LOOP kcode_loop;
CLOSE kcode_count;

如下所示,在 SHOULD_GET 列中,最后两条记录生成 NULL。有什么理由吗?

enter image description here

最佳答案

问题是您只更新 SHOULD_GET处理某个患者后列(当循环获取第一个 20092491 患者的记录时,患者 20092469 的数据会更新)。对于最后一个病人来说,这显然不可能发生,dbPTNT_ID <> setPTNT_ID条件永远不会被满足。

乍一看我会重复

    IF setPTNT_ID <> 0 THEN
UPDATE tmp_kcodes
SET SHOULD_GET = setCP_ID
WHERE setPTNT_ID = PTNT_ID;
END IF;

在 kcode_loop 结束后立即阻止以更新正在处理的最后一个患者。

另一个解决方案可能是使用联合在游标返回的结果集的末尾附加一个“虚拟”行,这样 dbPTNT_ID <> setPTNT_ID最后一位患者也会触发条件。

关于mysql - 公式中省略了最后一条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38226084/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com