2つのテーブル(Orders、Transactions)と、OrderId列とTransactionsId列だけを保持するTransactionsOrdersルックアップテーブルがあります。
トランザクションが(n)回失敗した場合、1つの注文に対して複数のトランザクションが存在する可能性があります。また、Orderオブジェクトにはトランザクションに関する知識がありません。
成功したトランザクションレコードがその注文に存在する場合、すべての注文プロパティと、トランザクションテーブルから2つのプロパティ(AmountとTransactionDate)を返す必要があるため、予測を使用する必要があると思います。以下は、正しい出力を生成するSQLです。
SELECT o.*, ct.TransactionDate, ct.Amount from Orders o
LEFT OUTER JOIN
(SELECT * FROM CreditTransactionsOrders cto
INNER JOIN CreditTransactions ct
ON ct.Id = cto.CreditTransactionId
WHERE ct.Successful = 1) as ct
ON o.Id = ct.OrderId
このQueryOverを作成し、OrderオブジェクトとTransactionオブジェクトから必要なプロパティを投影しようとしましたが、このSQLクエリを適切に変換できません。
最終結果は、すべての注文を返す必要があり、その注文に成功したものが存在する場合は、トランザクションオブジェクトから金額と日付を返す必要があります。エイリアスを使用する必要があるかどうかはよくわかりませんが、これまでのところ、すべての試みは失敗しています。