-1

以下查询失败,因为 where 条件中的 select 语句生成了一个 id 数组。我对使用 sql 比较陌生,因此将不胜感激有关如何纠正的任何帮助。

    SELECT sum(txnpnl) FROM tdmarketprob.pnl_transactions
    WHERE instrumentid = (SELECT instrumentid
    FROM tdmarketprob.pnl_instruments
    WHERE symbol="ES") and txnpnl <>0;
4

2 回答 2

0

尝试:SELECT sum(txnpnl) FROM tdmarketprob.pnl_transactions WHERE instrumentid IN (SELECT instrumentid FROM tdmarketprob.pnl_instruments WHERE symbol="ES") and txnpnl <>0;

于 2013-09-14T19:59:13.213 回答
0

您最好使用连接而不是嵌套查询。像这样 :

SELECT sum(t.txnpnl) FROM tdmarketprob.pnl_transactions t
inner join tdmarketprob.pnl_instruments i
on t. instrumentid = t. instrumentid
WHERE i.symbol="ES" and t.txnpnl <>0;

你对你想要得到什么结果不够具体,所以我不确定这个答案是否足够。

于 2013-09-14T20:18:37.593 回答