Tenho uma tabela de registros de clientes, onde cada cliente pode ter vários registros, caso seu registro antigo tenha sido fechado (eles podem ter apenas um registro "Ativo").
Cada registro tem uma created
data e uma closed
data (se tiver sido fechado).
Tabela de origem:
ID do cliente | id_do_registro | status_do_registro | data_criada | data_fechada |
---|---|---|---|---|
1000000 | WTLZSMV3RQ | Ao vivo | 15/02/2025 10:36:26 | |
1000001 | I8R6FPCOEH | Fechado | 20/09/2024 03:11:22 | 13/12/2024 06:08:54 |
1000001 | ZRPLYWBR8C | Fechado | 13/12/2024 10:11:10 | 07/03/2025 09:06:25 |
1000001 | 9HJT89GNJ3 | Ao vivo | 07/03/2025 13:08:42 | |
1000002 | ER5JF7TZ0Z | Ao vivo | 22/07/2024 22:05:17 | |
1000003 | 2SNSDMLXZ1 | Fechado | 07/03/2024 13:04:33 | 03/12/2024 08:34:56 |
1000003 | VDNI7UWAUX | Ao vivo | 03/12/2024 22:19:39 |
Quero uma instrução SQL que retorne a tabela, com uma nova coluna old_record_id
.
Isto será preenchido com o record_id
para o registro anterior para aquele cliente. "Registro anterior" é o registro com o anterior mais próximo created_date
daquele created_date
registro. Se não houver registros anteriores, ele deve ser nulo.
Resultados que desejo dessa consulta SQL:
ID do cliente | id_do_registro | status_do_registro | data_criada | data_fechada | id_de_registro_antigo |
---|---|---|---|---|---|
1000000 | WTLZSMV3RQ | Ao vivo | 15/02/2025 10:36:26 | ||
1000001 | I8R6FPCOEH | Fechado | 20/09/2024 03:11:22 | 13/12/2024 06:08:54 | |
1000001 | ZRPLYWBR8C | Fechado | 13/12/2024 10:11:10 | 07/03/2025 09:06:25 | I8R6FPCOEH |
1000001 | 9HJT89GNJ3 | Ao vivo | 07/03/2025 13:08:42 | ZRPLYWBR8C | |
1000002 | ER5JF7TZ0Z | Ao vivo | 22/07/2024 22:05:17 | ||
1000003 | 2SNSDMLXZ1 | Fechado | 07/03/2024 13:04:33 | 03/12/2024 08:34:56 | |
1000003 | VDNI7UWAUX | Ao vivo | 03/12/2024 22:19:39 | 2SNSDMLXZ1 |