A questão pergunta: Qual o primeiro ano disponível na base?
Gabarito: SELECT MIN(strftime('%Y', data_venda)) AS Ano FROM VENDAS;
discordo, pois tem duas colunas com formato DATA uma na tabela VENDAS(data_venda) e outra na tabela PRODUTOS(data_estoque)
Então proponho:
SELECT
MIN(menor_data) AS menor_data_geral
FROM (
SELECT STRFTIME('%Y', p.data_estoque) AS menor_data FROM produtos p
UNION ALL
SELECT STRFTIME('%Y', v.data_venda) AS menor_data FROM vendas v
);
Ambos os códigos fornecem o mesmo resultado final. No entanto, o código que proponho garante que o valor encontrado seja, de fato, o primeiro ano disponível em toda a base de dados, e não apenas na tabela VENDAS.