私はたくさんのデータを入力してアンドロイドアプリを作成しています。sort_androidのgroup_byアイテムへのSqlクエリ
は今、私はちょうど私が、すべてのデータが表示されている画像、の最初の部分を作っ
下の画像の上のようないくつかのデータを表示する必要があります。今度は、データを並べ替えて集計する必要があります。同じグレードのアイテムがある場合は、それらを同じ行の下に配置し、それらの数を数え、その質量と価格を合計する必要があります。
これは私がitemsListを表示していますコードの一部です:
public class LogsRecapitulation extends AppCompatActivity {
private ListView mainListView;
private BaseAdapter listAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_listview);
mainListView = (ListView) findViewById(R.id.ListViewItem);
//recieve RecepitID in displayLogs.activity
final long forwardedId = (long) getIntent().getExtras().get(String.valueOf("recepitID"));
List<Logs> logsList = new Select().from(Logs.class).where("Receipt = " + forwardedId).execute();
listAdapter = new RecapitulationArrayAdapter(logsList);
mainListView.setAdapter(listAdapter);
}
private class RecapitulationArrayAdapter extends BaseAdapter {
private LayoutInflater inflater;
private List<Logs> logsList;
public RecapitulationArrayAdapter(List<Logs> logsList) {
inflater = LayoutInflater.from(LogsRecapitulation.this);
this.logsList = logsList;
}
@Override
public int getCount() {
return logsList.size();
}
@Override
public Object getItem(int position) {
return logsList.get(position);
}
@Override
public long getItemId(int position) {
return logsList.get(position).getId();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = inflater.inflate(R.layout.logs_recapitulation, parent, false);
}
Logs log = logsList.get(position);
((TextView) convertView.findViewById(R.id.rec_log_sort)).setText(log.sort_id);
((TextView) convertView.findViewById(R.id.rec_log_class)).setText(log.grade);
((TextView) convertView.findViewById(R.id.rec_log_count)).setText(String.valueOf(logsList.size()));
((TextView) convertView.findViewById(R.id.rec_logs_mass)).setText(String.format("%.2f m3", log.getM3()));
if (log.receipt.priceType.equals("Na panju")) {
((TextView) convertView.findViewById(R.id.rec_log_price_default)).setText(String.valueOf(log.price.stumpPrice_kn));
} else {
((TextView) convertView.findViewById(R.id.rec_log_price_default)).setText(String.valueOf(log.price.roadPrice_kn));
}
if (log.receipt.priceType.equals("Na panju")) {
((TextView) convertView.findViewById(R.id.rec_calculated_price)).setText(String.format("%.2f KN", log.price.stumpPrice_kn * log.getM3()));
} else {
((TextView) convertView.findViewById(R.id.rec_calculated_price)).setText(String.format("%.2f KN", log.price.roadPrice_kn * log.getM3()));
}
return convertView;
}
}
この上位コードは非常に重要な、しかし、私にとってより重要ではないにソートすることにより、この要約およびグループ項目を作り、各ソートにされますグレードによって
質問:アイテムをソート順にグループ化する必要があります。各ソートグループでグレード別にグループ化する必要があります(イメージアップと同じです)。 助けを歓迎します!以下のような表を作成
SELECT Sort, Grade, COUNT(DISTINCT ID) AS Pieces, ROUND(SUM(Mass), 2) AS
TotalMass, Price, SUM(MassPrice) AS TotalMassPrice
FROM LogsTable
GROUP BY Sort, Grade
ORDER BY Sort DESC, Grade DESC;
:私はあなたのデータベーススキーマへのアクセスができますが、以下のように「ソート」することによって、あなたのグループがあり、このような結果を生成するために使用することがありますSQLクエリを持っていない