Oracle:
Select
U.userid, Count (t.transactionid)
From users u, wallets w, walletsections ws, transactions t
Where
u.userid=w.userid and
w.walletid=ws.walletid and
ws.walletsectionid=t.walletsectionid and
to_date(t.creationdate,'dd.mm.yyyy') between to_date(u.registrationdate,'dd.mm.yyyy') and add_month(to_date(u.registrationdate,'dd.mm.yyyy'),12)-1 and
ws.currency='USD' /*тут смотрите сами как у вас валюта кодируется*/
group by u.userid
having count(t.transactionid)>30