mySQL 操作数应包含 1 列错误

发布于 2024-08-02 19:10:03 字数 733 浏览 1 评论 0原文

我正在尝试运行如下所示的查询以将结果包含在报告中,但收到 Operand should contains 1 columns 错误 #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;

I am trying to run the query shown below to include the results in a report and am getting an Operand should contain 1 column error #1241. I have not been able to figure out the cause of this. If I run this part by itself I do not get any errors: (pct_return_1 * .25) + (pct_return_2 * .25) + (pct_return_3 * .15) + (pct_return_4 * .15) + (pct_return_5 * .2)

Here is the code:

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;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

删除会话 2024-08-09 19:10:04

尝试删除第一次出现的 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

Try removing the first occurrence of FROM Temp_4 (the one just after the second value in the subquery).

Edit: Also double check parenthesis groupings, as in this example:

INSERT INTO table2 (field1, field2, field3, field4) (SELECT 'value1 from user input', field1, field2, field3 from table1)

Which is given on this page regarding insert subqueries: http://dev.mysql.com/doc/refman/5.1/en/subqueries.html

丶视觉 2024-08-09 19:10:04

用途:

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;

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

Use:

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;

Mathematical order of operations ensures that brackets/parenthesis are not necessary.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文