1

注文が成功したかどうかを示す EPL ステートメントを作成しようとしています。

ステートメントは、購入の ID に基づいて、購入と支払いを照合する必要があります。結果には、購入の ID と、購入が支払いと一致したかどうかを示すブール値が含まれている必要があります。

以下のステートメントは、一致が成功したときに true を返します。ただし、購入が支払いに一致せずに 30 秒の時間枠を終了した場合にも false を返したいと思います。

SELECT Purchase.purchaseId AS purchaseId, true AS successful
FROM Purchase.win:time(30), Payment.win:time(30) 
WHERE Purchase.purchaseId = Payment.purchaseId

また、イベントが発生する順序が問題にならないのもいいでしょう。たとえば、支払いが購入前に行われた場合。

4

1 に答える 1

1

代わりに外部結合を使用してください。

このようなもの:

SELECT Purchase.purchaseId AS purchaseId, s2 is not null as successfull
FROM Purchase.win:time(30) as s1 left outer join Payment.win:time(30) as s2
on s1.purchaseId = s2.purchaseId
于 2013-02-05T13:22:58.710 に答える