以下查询失败,因为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;
答案 0 :(得分:0)
尝试:SELECT sum(txnpnl) FROM tdmarketprob.pnl_transactions
WHERE instrumentid IN (SELECT instrumentid
FROM tdmarketprob.pnl_instruments
WHERE symbol="ES") and txnpnl <>0;
答案 1 :(得分: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;
你对你想得到什么结果不够具体,所以我不确定这个答案是否足够。