次のステートメントを実行してみました。
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;
私が理解しているように、これは、BOOK テーブルのエントリに対応する ID および DENOMINATION フィールドを持つ temp_cheques の各レコードを VOUCHER に挿入する必要があります (temp_cheques は、別の形式で再作成しようとしているデータベースのバックアップから取得されます)。ただし、実行するとエラーが発生します。
Error: Operand should contain 1 column(s)
SQLState: 21000
ErrorCode: 1241
これを SQuirrel で実行していますが、他のクエリで問題は発生していません。クエリの構文に何か問題がありますか?
編集:
BOOK の構造は次のとおりです。
ID int(11)
START_NUMBER int(11)
UNITS int(11)
DENOMINATION double(5,2)
temp_cheques の構造は次のとおりです。
ID int(11)
number varchar(20)