如何按class1字段对数据库库存表数据进行分类展示
按class1分类物料的实现方法
核心不需要写硬编码的固定值判断条件,直接以class1字段作为分组维度做动态归类即可,具体实现路径如下:
数据库查询层
先把库存表数据按class1排序拉取,不需要在SQL里做复杂的结果拼接,参考SQL:
SELECT code, description, class1 FROM 库存表名 ORDER BY class1, code;
如果只需要统计每个分类的条目总数,可以用GROUP BY class1做聚合,但要拿到分类下的完整物料明细,排序后拉取到业务代码层处理是最稳妥的方案。
业务代码层分组
拿到查询返回的结果集后,遍历所有数据行,用字典(或Map结构)做动态分组:
- 遍历单条记录时,先检查分组字典里有没有当前记录
class1值对应的键 - 没有对应键就新建,键值初始化为空列表,把当前记录的
code和description拼接成条目存入列表 - 有对应键就直接把当前物料条目追加到对应列表末尾
处理完成后按字典的键逐个输出分类标题和下属条目,就能得到你预期的效果:
101 - 001 Office stationary
- 002 Computer stationary
- 003 Documents
107
- 001 Surgical products
- 002 Urological products
避坑提醒:不要写
if class1 == 101、if class1 ==107这类硬编码判断,后续新增分类值时必须改代码才能适配,动态分组逻辑可以自动兼容所有新增的class1分类,不需要额外调整逻辑。
内容的提问来源于stack exchange,提问作者SheCodes
相关产品推荐
相关产品推荐

