4つのテーブルから合計数を選択する非常に長いMYSQLクエリがありますが、サブクエリの1つで複数の行が返され、エラーが発生します。
これは私のクエリです:このクエリで解決方法サブクエリは複数の選択で1行以上のエラーを返します
select created,
(select coalesce(sum(equal_to_dollar), 0) from capitals group by created) as capital,
(select coalesce(sum(incoming), 0) - coalesce(sum(outgoing), 0) from transactions where currency = 'دالر') +
(select coalesce(sum(equal_to_dollar), 0) from transactions where incoming != 0) -
(select coalesce(sum(equal_to_dollar), 0) from transactions where outgoing != 0) as total_transaction,
(select coalesce(sum(incoming), 0) - coalesce(sum(outgoing), 0) from temporary_clients where currency = 'دالر') +
(select coalesce(sum(equal_to_dollar), 0) from temporary_clients where incoming != 0) -
(select coalesce(sum(equal_to_dollar), 0) from temporary_clients where outgoing != 0) as total_temp_client,
(select coalesce(sum(outgoing), 0) - coalesce(sum(incoming), 0) from money_transmission where currency = 'دالر') +
(select coalesce(sum(equal_to_dollar), 0) from money_transmission where outgoing != 0) -
(select coalesce(sum(equal_to_dollar), 0) from money_transmission where incoming != 0) as total_transmission,
(select coalesce(total_transaction + total_temp_client + total_transmission, 0)) as total,
(select capital - abs(coalesce(total_transaction + total_temp_client + total_transmission, 0))) as result
from capitals group by created
つの値以上のものを返し、as capital
で終わる最初のサブクエリは、1つの値以上を返すcreated
最初の選択。
このクエリは、データベース内の各日付について、他の3つのテーブルの合計を持つ資本の計算結果を返す必要があります。
同じエラーがあり、IN
またはinner join
をwhere
句に使用している質問が多数確認されていますが、私のケースは異なり、何をすべきかわかりません。
どうすればこの問題を解決できるかご了承ください。
はあなたに感謝:)
エラーメッセージはクリアです。1つ以上のサブクエリが複数のレコードを返しています。ロジックをクリーンアップしてこれを修正するのが最良のポジションです。 –
私は私の質問で述べたように、最初のサブクエリは複数のレコードを返し、これを知っていますが、これは他のすべてのテーブルの合計から毎日の資本を差し引いて毎日の単一の値を受け取る必要があるためです。 – AliDK
スカラーの加算と減算を行うことができないため、クエリは論理的には意味がありません。希望の出力とともにいくつかのサンプルテーブルデータを表示します。 –