我正在尝试运行下面显示的查询,将结果包含在报告中,并收到Operand should contain 1 column
错误#1241。我无法弄清楚原因。如果我单独运行此部分,则不会出现任何错误:(pct_return_1 * .25) + (pct_return_2 * .25) + (pct_return_3 * .15) + (pct_return_4 * .15) + (pct_return_5 * .2)
以下是代码:
DROP TABLE IF EXISTS temp_5;
CREATE TABLE temp_5 (
date_value date default NULL,
pct_return_portfolio double default NULL,
pct_return_benchmark double default NULL);
INSERT INTO temp_5 (date_value, pct_return_portfolio, pct_return_benchmark)
SELECT
(date_value,
(pct_return_1 * .25) +
(pct_return_2 * .25) +
(pct_return_3 * .15) +
(pct_return_4 * .15) +
(pct_return_5 * .2)
FROM Temp_4),
pct_return_6)
FROM temp_4;
答案 0 :(得分:0)
尝试删除第一次出现的FROM Temp_4
(子查询中第二个值之后的那个)。
编辑:还要仔细检查括号分组,如下例所示:
INSERT INTO table2 (field1, field2, field3, field4) (SELECT 'value1 from user input', field1, field2, field3 from table1)
此页面上有关插入子查询的内容:http://dev.mysql.com/doc/refman/5.1/en/subqueries.html
答案 1 :(得分:0)
使用:
INSERT INTO temp_5
(date_value, pct_return_portfolio, pct_return_benchmark)
SELECT date_value,
pct_return_1 * .25 + pct_return_2 * .25 + pct_return_3 * .15 + pct_return_4 * .15 + pct_return_5 * .2,
pct_return_6
FROM temp_4;
数学运算顺序确保不需要括号/括号。