Я попытался выполнить следующую инструкцию:
INSERT INTO VOUCHER (VOUCHER_NUMBER, BOOK_ID, DENOMINATION)
SELECT (a.number, b.ID, b.DENOMINATION)
FROM temp_cheques a, BOOK b
WHERE a.number BETWEEN b.START_NUMBER AND b.START_NUMBER+b.UNITS-1;
который, как я понимаю, должен вставлять в VOUCHER каждую запись из temp_cheques с полями ID и DENOMINATION, соответствующими записям в таблице BOOK (temp_cheques происходит из резервной копии базы данных, которую я пытаюсь воссоздать в другом формате ). Однако, когда я запускаю его, я получаю сообщение об ошибке:
Error: Operand should contain 1 column(s)
SQLState: 21000
ErrorCode: 1241
Я запускаю это в SQuirrel, и у меня не было проблем с другими запросами. Что-то не так с синтаксисом моего запроса?
EDIT:
Структура книги:
ID int(11)
START_NUMBER int(11)
UNITS int(11)
DENOMINATION double(5,2)
Структура temp_cheques:
ID int(11)
number varchar(20)