【发布时间】:2013-06-20 03:31:54
【问题描述】:
尝试编写语句 where in single statement select all (*) and sum one column from the same database and the same table, 具体取决于条件。
写了这样的声明(基于这个Multiple select statements in Single query)
SELECT ( SELECT SUM(Amount) FROM 2_1_journal), ( SELECT * FROM 2_1_journal WHERE TransactionPartnerName = ? )
我了解SELECT SUM(Amount) FROM 2_1_journal 将对Amount 列中的所有值求和(不基于代码)。
但首先要明白什么是正确的说法
上面的语句得到错误SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s)
无法理解错误信息。从这里的建议MySQL - Operand should contain 1 column(s) 了解子查询SELECT * FROM 2_1_journal WHERE TransactionPartnerName = ? 必须只选择一列?
试图将语句更改为此 SELECT ( SELECT * FROM 2_1_journal WHERE TransactionPartnerName = ? ), ( SELECT SUM(Amount) FROM 2_1_journal),但得到相同的错误...
什么是正确的陈述?
【问题讨论】: