0

私は2つのテーブルを持っています。

トランザクション (id、リソース ID、タイムスタンプ)

リソース (ID、名前)

( resource.name,day,count(transaction.id) ) のような出力を取得したい

次のクエリを使用しています

select  EXTRACT(DAY from timestamp), resourceid, count(id) from transactions
where timestamp between '01-OCT-13' AND '10-OCT-13'
and resourceid in (select id from resource)
group by resourceid, EXTRACT(DAY from timestamp) \
order by EXTRACT(DAY from timestamp);

出力:

1,1,13
1,3,45
1,6,76
2,1,14
2,2,46

次のような出力を見たい

1,resource1,13
1,resource3,45
1,resource6,76
2,resource1,14
2,resource2,46

誰か助けてくれませんか?

編集

resource1 は単なる例です。番号 1 の前にリソースを連結したくありません。id=1 に関連付けられている実際の名前が必要です。

4

1 に答える 1

1

トランザクション テーブルとリソース テーブルを結合すると、resource.name フィールドを使用できます。それは次のようになります。

select  EXTRACT(DAY from timestamp), resource.name, count(transactions.id) 
from transactions inner join resource 
    on transactions.resourceid = resource.id
where timestamp between '01-OCT-13' AND '10-OCT-13'
group by resource.name, EXTRACT(DAY from timestamp)
order by EXTRACT(DAY from timestamp);
于 2013-10-30T23:59:26.073 に答える