Insert is ok with what Guneli has provided. Syntactically, the query is incorrect. Use
INSERT INTO table1 (column1,column2,column3,column4,column5,column6)
SELECT value1*currency1, value2*currency1, value3*currency1,
value4*currency2, value5*currency2, value6*currency2
FROM (select (select currency from currency_table where date = @date1) currency1,
(select currency from currency_table where date = @date2) currency2) A;
For update, you can use the following command.
UPDATE t1
SET t1.column1 = value1 * c.currency1,
t1.column2 = value2 * c.currency1,
t1.column3 = value3 * c.currency1,
t1.Column4 = value4 * c.currency2,
t1.column5 = value5 * c.currency2,
t1.column6 = value6 * c.currency2
from table1 t1,
(select (select currency from currency_table where date = @date1) currency1,
(select currency from currency_table where date = @date2) currency2) C
WHERE t1.column4 = value4
It will make a cross join with currency_table, and assuming currency_table is having single row, it will update correctly.