2012-02-11 7 views
1

私のゲームのレベルのSQLiteデータベースは、Name, Campaign, Number, Scoreのデータを持っています。 LevelList(カスタムビューでのListView)を作成する際に、リストからキャンペーンを選択します。リストには、このキャンペーンのレベルのすべてのスコアをデータベースに追加して得られる最高スコアが表示されます。SQLiteのAndroidが別の値を取得

データベースのすべてのレベルには、その一部のキャンペーンフィールドがあります。しかし、キャンペーンリストを作成するには、私は別個の(ユニークな)キャンペーンを得たいだけです。これらをデータベースから取得する良い方法はありますか?
これを取得し、合計得点を得るのに最も良い方法は何ですか?

データベースの一部とどのように私は私のlevelpickerのリストビューを作成するつもりです:
enter image description here

+0

私はそれがいくつかの明確化を必要と思う。 1)あなたのキャンパインリストのアイデアについてのスケッチ/説明を投稿します.2)テーブルがどのように構築されているか(どの列) – Yar

+0

'campainを選んで、campainによるgdataグループからの合計(スコア)...もし私が正しいとすれば。プレイヤー追加プレイヤーを追加してグループ化する場合は、「グループ化」 –

+0

キャンペーンを選択しないでください。キャンペーンから重複をも返しますか?そして、これは私にすべてのレベルのスコアの合計を与えないのですか? – user717572

答えて

5
select * from gdata 

campain  num  name  file  score  player  
------------- ------ --------- --------- -------- --------- 
Campain One 1  Level One test1.xml 1221  john  
Campain One 1  Level Two test1.xml 122  john  
Campain One 1  Level Two test1.xml 122  dereck  
Campain One 1  Level Two test1.xml 122  jon  
Campain Two 1  Level Two test1.xml 122  jon  
Campain Two 1  Level Two test1.xml 122  jon  
Campain Two 1  Level Two test2.xml 122  jon  
Campain Three 1  Level Two test2.xml 1122  jon  
Campain Three 1  Level Two test2.xml 1122  jon  
Campain Three 1  Level Two test2.xml 1122  derekk 

select 'All' as campain ,'All'as player,sum(score) score from gdata 
union 
select campain,player,sum(score) as score from gdata group by campain,player 

campain  player  score  
------------- --------- -------- 
All   All  5319  
Campain One dereck  122  
Campain One john  1343  
Campain One jon  122  
Campain Three derekk  1122  
Campain Three jon  2244  
Campain Two jon  366  

select campain,sum(score) as score from gdata group by campain 

campain  score  
------------- -------- 
Campain One 1587  
Campain Three 3366  
Campain Two 366 

select campain,player,max(score) from (
select campain,player,sum(score) as score from gdata 
group by campain,player order by score desc 
) as b 
group by campain 

campain  player  score 
------------- --------- ------------- 
Campain One john  1343   
Campain Three jon  2244   
Campain Two jon  366 
+0

うわー、ありがとう!私はそれを試して、それは良い結果を与えた。私は 'group by'がそれらを並べ替えると思った。 3番目の例は、 'player'と一緒に私が必要としていたものですが、他のものも、例えば最高得点リストのように素晴らしいです。私は今それを実装しようとしています。 – user717572

+1

喜んで助けてください。答えとして設定してください。 –

関連する問題