我正在尝试更新 HFSQL 数据库中的日期字段。在
Patient
表中有一个 Patient.PatInserted
字段,其中一些记录为空白。患者 ID 为 Patient.PatID
。我正在尝试填充 Patient.PatInserted
字段以匹配另一个表中最旧的记录。该表称为 Test
,此处的记录使用 Patient
绑定到 Test.TesPatIDFK
表。我想将每位患者最旧的 Test.TesInserted
记录插入到他们的 Patient.PatInserted
记录中。
我是 SQL 新手,我无法让选择查询仅显示最旧的
Patient.PatInserted
记录。我正在尝试获取每个人的最旧记录TesPatIDFK
。我现在尝试只执行 SELECT 部分。
这是我最新的 SELECT 查询代码:
SELECT
DISTINCT Patient.PatID,
Patient.PatInserted,
Patient.PatSalutation,
Test.TesPatIDFK,
Test.TesInserted
FROM
Patient JOIN Test ON Patient.PatID = Test.TesPatIDFK
WHERE
Patient.PatID = Test.TesPatIDFK
AND
Test.TesInserted = (SELECT MIN(Test.TesInserted) FROM Test)
AND
Patient.PatInserted LIKE ''
这是表结构的基本视图。我相信
PatInserted
和 TesInserted
是时间戳,只是格式略有不同:
Patient
___________________
PatID | PatInserted
___________________
1,626 |
___________________
2 | 16/02/2021
Test
_______________________________________
TesID | TesPatIDFK | TesInserted
_______________________________________
1303 | 1,626 |25/10/1201 15:04:34
_______________________________________
8 | 2 |16/02/2021 14:05:51
这是我查询的结果:
PatID | PatInserted | TesPatIDFK | TesInserted
______________________________________________________
1,626 | | 1,626 | 25/10/1201 00:00:00
update patient set patinserted = ... where ...
。where patinserted is null
。但是,您可以使用 PatInserted LIKE ''
,它假设 PatInserted 是一个字符串,并且该字符串不为 null,而是空字符串。无论如何,LIKE
似乎没有多大意义。 LIKE
进行模式匹配。如果您正在寻找平等,请使用 =
。如果列是字符串,则应将其更改为 TIMESTAMP
并使用 where patinserted is null
。完整声明:
update patient
set patinserted =
(
select min(test.tesinserted)
from test
where text.tespatidfk = patient.patid
)
where patinserted is null;