mySQL操作数应包含1列错误

时间:2009-08-26 16:16:52

标签: mysql sql mysql-error-1241

我正在尝试运行下面显示的查询,将结果包含在报告中,并收到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;

2 个答案:

答案 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;

数学运算顺序确保不需要括号/括号。