У меня сложилось впечатление, что это правильный синтаксис SQLite:
SELECT
*,
(SELECT amount AS target
FROM target_money
WHERE start_year <= p.bill_year
AND start_month <= p.bill_month
ORDER BY start_year ASC, start_month ASC
LIMIT 1) AS target
FROM payments AS p;
Но я думаю, что нет, потому что SQLite возвращает эту ошибку:
нет такого столбца: p.bill_year
Что не так с тем, как я называю p.bill_year?
Да, я положительный таблица payments
хостов столбец bill_year
. Я сумасшедший или это просто правильный синтаксис SQL? Это будет работать в MySQL, не так ли? У меня нет другого SQL-кода, поэтому я не могу тестировать другие, но я думал, что SQLite вполне стандартен.