Banco de dados SQLite com uma tabela "eventos" com as colunas events.eventDate , events.ageAtEvent e events.foreignKey_participants , e uma tabela "participants" com as colunas participantes.primaryKey e participantes.dob .
Desejo atualizar todas as linhas em events.ageAtEvent com a idade atual no momento do evento para cada participante.
O que eu tentei:
UPDATE events
SET ageAtEvent = (
SELECT (strftime('%Y', events.eventDate) - strftime('%Y', participants.dob)) - (strftime('%m-%d', events.eventDate) < strftime('%m-%d', participants.dob))
FROM events JOIN participants ON events.foreignKey_participants = participants.primaryKey
);
Isso preenche todas as linhas com o mesmo ageAtEvent, presumivelmente o primeiro. Não estou claro como aplicar o cálculo correto a cada linha. Muito grato pela ajuda sobre isso.
A sintaxe correta para o que você deseja alcançar é: