0

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

2 回答 2

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

于 2009-08-26T16:22:01.993 回答
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;

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

于 2011-02-24T17:37:11.043 回答