sql查询一个字段不同值并返回

sql

SELECT COUNT(字段),分组字段,SUM(字段),SUM(字段)
FROM 表 GROUP BY 分组字段

java

    EntityWrapper<ProjectEntity> pp= new EntityWrapper<ProjectEntity>();
    pp.eq("depcode", community);
    int proc = projectService.selectCount(pp);
        pp.setSqlSelect("COUNT(depcode) as pro01,SUM(budgetmoney) as pro01money,status,SUM(usemoney)AS pro01usemoney").groupBy("status");
        List<Map<String,Object>> obj=projectService.selectMaps(pp);

        // 定义下标数组
                String[] indexStrList = {"01","02","03","04","05"};
                List<String> indexList=Arrays.asList(indexStrList);
                List<String> newIndexList = new ArrayList<>(indexList);
        JSONObject jsonObject = new JSONObject();
        for(Map<String,Object> m : obj){
             if(newIndexList.indexOf(m.get("status")) != -1 ){
            // 对象的key
                String key = "pro" + m.get("status");
                jsonObject.put(key,m.get("pro01"));
                jsonObject.put("pro" + m.get("status") + "money", m.get("pro01money"));
                jsonObject.put("pro" + m.get("status") + "usemoney", m.get("pro01usemoney"));
                newIndexList.remove(m.get("status"));
             }
        }
        for(String str : newIndexList){
            jsonObject.put("pro" + str,0);
            jsonObject.put("pro" + str + "money", 0);
            jsonObject.put("pro" + str + "usemoney", 0);
        }
         maptos.put("pro",jsonObject);
 

原文地址:https://www.cnblogs.com/yanchaohui/p/10042280.html

时间: 2024-10-12 13:30:06

sql查询一个字段不同值并返回的相关文章

sql 查询某个字段最长的记录

sql  查询文本字段中值的长度最长的记录 一.函数1.SQL ServerLEN() 函数返回文本字段中值的长度.SELECT LEN(column_name) FROM table_name;2.MySQL LENGTH() 函数返回文本字段中值的长度.SELECT LENGTH(column_name) FROM table_name; 二.简单用法1.SQL Serverselect `字段`, len(`字段`) from 表名 where len(`字段`) = ( select m

SQL查询某表是否存在及返回新增数据的ID

下面简单介绍了SQL查询某表是否存在以及返回新增数据的ID值. 1.查询表是否存在: 表名:"t_Demo", type = 'u'  查看是不是用户表 select * from sysobjects where id = object_id('t_Demo') and type = 'u' select * from sys.tables where name='t_Demo' and type = 'u' 2.查询字段是否存在: 表名:"t_Demo", 字段

DB2 SQL查询结果集自动编号、返回条数范围控制研究

DB2 SQL查询结果集自动编号.返回条数范围控制研究 摘要: DB2 SQL语句实现查询的记录自动编号.并根据编号进一步实现记录范围控制.分页查询. 环境: IBM DB2 Universal V9.1 Windows XP Professional 要求:写一个SQL语句,在查询结果中要显示出记录序号,这个序号是是根据记录顺序自动生成的. 测试初始化DB2 SQL脚本: drop table t_test; create table t_test (bs        bigint     

linq查询一个字段的总和

(from s in dc.StockInItem   //所要查询单表 join si in dc.StockIn           //联合的表 on s.StockInID equals si.StockInID     //两个表联合的相同条件 where (s.ColorsID == int.Parse(colorID) && s.SizesID == int.Parse(sizeID) && s.ProductID == int.Parse(ProtectID

SQL查询一个表的总记录数的方法

一.简单查询语句 1. 查看表结构 SQL>DESC emp; 2. 查询所有列 SQL>SELECT * FROM emp; 3. 查询指定列 SQL>SELECT empmo, ename, mgr FROM emp; SQL>SELECT DISTINCT mgr FROM emp; 只显示结果不同的项 4. 查询指定行 SQL>SELECT * FROM emp WHERE job='CLERK'; 5. 使用算术表达式 SQL>SELECT ename, sa

jmeter--正则提取json串中一个大括号对象里指定字段值的的另一个字段的值

需要提取如图红框_id的值,整个返回里有多个类似的大括号对象: 里面的第一个id的值,但是整个json串不止这么一个,并且只能匹配quality_level是349的这个大括号里的第一个id的值.下面使用3种方法: 第一种:最笨的方法,所有字段都写出来做匹配 {"_id":"(.{10,30}?)","agent":{"_id":"[^"]*?","name":"[^

Oracle sql判断一个字段是否全数字 或含有中文

[sql] view plain copy update (select length(t.name), t.* -- name,length(name) from g_enterprise_info t where nvl2(translate(name, '\1234567890 ', '\'), 'is characters ', 'is number ') = 'is number ' and asciistr(gszcdjh) like '%\%') set name = gszcdj

SQL查询一个表中类别字段中Max()最大值对应的记录

问题是: 数据库有一个表 code,里面有个点击量字段click_num和一个类别字段kind以及其它信息字段, 现在要搜出每个类别中点击量最大的那条记录,如果是10个类别,那么结果应该是10条记录, 如果最大点击量有两个相同的只要一条. 经过N次搜索,N次检测网上的解决SQL语句,终于找到个优雅的而且结果正确的SQL,这个是一个博客作者在Mysql的官方文档里面发现的. 禁不住收藏了,以备后用. select id,kind,click_num from code as a where  cl

SQL一次性查询一个字段不同条件下的统计结果(另一张表的统计数量)

做另一张表的统计,比如本部门有多少在职人员.本岗位有多少女生. 有两个表,分别存放了[操作员]和[单据],要根据单据的不同类型来分类汇总(销售单.销售退货单,笔数和金额),并且显示在同一张表里,不想用做两次查询再合并的方法,研究了一下,终于搞定: d_employee表 d_bilndx表 代码如下: select b.inputid as 开单员编号, e.fullname as 开单员, isnull( ( select count(*) from d_bilndx where draft=