zoukankan      html  css  js  c++  java
  • 一对多复杂sql查询

    private Integer id;
    	private Integer provinceId;
    	private Integer month;
    	private Integer industryInvest;
    	private Integer industryIncome;
    	private Integer industryProfits;//工业利润
    	private Double industryProfitsMargin;//工业利润率
    	private Double industryBiZhong;//工业收入比重
    	private Integer eConsumer;
    	private Integer agInvest;
    	private Integer agIncome;
    	private Integer agProfits;//农业利润
    	private Double agProfitsMargin;//农业利润率
    	
    	//省份
    	private Province pro;
    	private Integer pid;
    	private String name;
    	private Integer pnum;
    	
    	//查询条件
    	private Integer pnumMin;//最小人数
    	private Integer pnumMax;//最大人数
    	
    	private Integer profitsMin;//最小总利润率
    	private Integer profitsMax;//最大总利润率
    	
    	private Integer industryInvestMin;//最小工业投入
    	private Integer industryInvestMax;//最大工业投入
    	
    	private Integer agIncomeMin;//最小农业收入
    	private Integer agIncomeMax;//最大农业收入
    	
    	private Integer monthMin;//最小月份
    	private Integer monthMax;//最大月份
    	
    	private Integer yearMin;//最小全年收入
    	private Integer yearMax;//最大全年收入
    

      

    private Integer pid;
    	private String name;
    	private Integer pnum;
    

      

    PageInfo<Gdp> findAll(Gdp gdp,Integer pageNum,Integer pageSize);
    	
    

      

    List<Gdp> findAll(Gdp gdp);
    

      

    @Service
    public class GdpServiceImpl implements GdpService{
    	@Autowired
    	GdpDao gdpDao;
    	
    	public PageInfo<Gdp> findAll(Gdp gdp, Integer pageNum, Integer pageSize) {
    		PageHelper.startPage(pageNum, pageSize);
    		List<Gdp> list = gdpDao.findAll(gdp);
    		return new PageInfo<Gdp>(list);
    	}
    
    }
    

      

     1 <?xml version="1.0" encoding="UTF-8" ?>
     2 <!DOCTYPE mapper
     3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
     5 <!-- 命名空间的值为dao层接口的权限定名 -->
     6 <mapper namespace="com.bawei.dao.GdpDao" >
     7     
     8     <select id="findAll" resultMap="maps">
     9         select *,(g.industryIncome-g.industryInvest) as industryProfits, 
    10             ((g.industryIncome-g.industryInvest)/g.industryIncome*100) as industryProfitsMargin,
    11             (g.agIncome-g.agInvest) as agProfits,
    12             ((g.agIncome-g.agInvest)/g.agIncome*100) as agProfitsMargin,
    13             (g.industryIncome/(g.industryIncome+g.agIncome)*100) as industryBiZhong
    14             from tb_gdp g LEFT JOIN tb_province p ON g.provinceId=p.pid
    15             <where>
    16                 <if test="provinceId!=null and provinceId!=0 ">
    17                     and provinceId=#{provinceId}
    18                 </if>
    19                 <if test="pnumMin!=null ">
    20                     and pnum &gt;= #{pnumMin}
    21                 </if>
    22                 <if test="pnumMax!=null ">
    23                     and pnum &lt;= #{pnumMax}
    24                 </if>
    25                 <if test="profitsMin!=null ">
    26                     and ((g.agIncome+g.industryIncome-g.agInvest-g.industryInvest)/(g.agIncome+g.industryIncome)*100) &gt;= #{profitsMin}
    27                 </if>
    28                 <if test="profitsMax!=null ">
    29                     and ((g.agIncome+g.industryIncome-g.agInvest-g.industryInvest)/(g.agIncome+g.industryIncome)*100) &gt;= #{profitsMax}
    30                 </if>
    31                 <if test="industryInvestMin!=null ">
    32                     and g.industryInvest &gt;= #{industryInvestMin}
    33                 </if>
    34                 <if test="industryInvestMax!=null ">
    35                     and g.industryInvest &lt;= #{industryInvestMax}
    36                 </if>
    37                 <if test="agIncomeMin!=null ">
    38                     and g.agIncome &gt;= #{agIncomeMin}
    39                 </if>
    40                 <if test="agIncomeMax!=null ">
    41                     and g.agIncome &lt;= #{agIncomeMax}
    42                 </if>
    43                 <if test="monthMin!=null ">
    44                     and g.month &gt;= #{monthMin}
    45                 </if>
    46                 <if test="monthMax!=null ">
    47                     and g.month &lt;= #{monthMax}
    48                 </if>            
    49             </where>
    50          GROUP BY g.id
    51              <trim prefix="having" prefixOverrides="and" >
    52                  <if test="yearMin!=null ">
    53                     and SUM(g.agIncome+g.industryIncome) &gt;= #{yearMin}
    54                 </if>
    55                 <if test="yearMax!=null ">
    56                     and SUM(g.agIncome+g.industryIncome) &lt;= #{yearMax}
    57                 </if>
    58              </trim>
    59     </select>
    60     
    61     <resultMap type="Gdp" id="maps">
    62         <id property="id" column="id" />
    63         <result property="provinceId" column="provinceId" />
    64         <result property="month" column="month" />
    65         <result property="industryInvest" column="industryInvest" />
    66         <result property="industryIncome" column="industryIncome" />
    67         <result property="eConsumer" column="eConsumer" />
    68         <result property="agInvest" column="agInvest" />
    69         <result property="agIncome" column="agIncome" />
    70         
    71         <result property="industryProfits" column="industryProfits" />
    72         <result property="industryProfitsMargin" column="industryProfitsMargin" />
    73         <result property="agProfits" column="agProfits" />
    74         <result property="agProfitsMargin" column="agProfitsMargin" />
    75         <result property="industryBiZhong" column="industryBiZhong" />
    76         
    77         <association property="pro" javaType="Province">
    78             <id property="pid" column="pid" />
    79             <result property="name" column="name" />
    80             <result property="pnum" column="pnum" />
    81         </association>
    82     </resultMap>
    83     
    84     
    85     
    86     
    87 </mapper>
    @Controller
    public class GdpController {
    	@Reference
    	GdpService gdpService;
    	
    	@RequestMapping("findAll")
    	public String findAll(Model model,Gdp gdp,@RequestParam(defaultValue = "1")Integer pageNum,@RequestParam(defaultValue = "5")Integer pageSize) {
    		PageInfo<Gdp> info = gdpService.findAll(gdp, pageNum, pageSize);
    		System.err.println(info);
    		model.addAttribute("info", info);
    		model.addAttribute("gdp", gdp);
    		return "list";
    	}
    	
    }
    

      

     1 <%@ page language="java" contentType="text/html; charset=utf-8"
     2     pageEncoding="utf-8"%>
     3     <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
     4 <!DOCTYPE html>
     5 <html>
     6 <head>
     7 <meta charset="utf-8">
     8 <title>Insert title here</title>
     9 <link href="${pageContext.request.contextPath}/resource/bootstrap4/css/bootstrap.css" rel="stylesheet" >
    10 <script type="text/javascript" src="${pageContext.request.contextPath}/resource/jquery/jquery-3.4.1.js"></script>
    11 <script type="text/javascript" src="${pageContext.request.contextPath}/resource/bootstrap4/js/bootstrap.min.js"></script>
    12 </head>
    13 <body>
    14 
    15 <form action="findAll" method="post">
    16     省份:<select name="provinceId">
    17             <option value="0">请选择</option>
    18             <option ${gdp.provinceId==1?"selected":"" } value="1">辽宁</option>
    19             <option ${gdp.provinceId==2?"selected":"" } value="2">山西</option>
    20             <option ${gdp.provinceId==3?"selected":"" } value="3">河南</option>
    21             <option ${gdp.provinceId==4?"selected":"" } value="4">吉林</option>
    22             <option ${gdp.provinceId==5?"selected":"" } value="5">黑龙江</option>
    23         </select>
    24     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    25     人口数量:<input type="text" name="pnumMin" value="${gdp.pnumMin }" >--<input type="text" name="pnumMax" value="${gdp.pnumMax }" >
    26     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    27     总利润率:<input type="text" name="profitsMin" value="${gdp.profitsMin }" >--<input type="text" name="profitsMax" value="${gdp.profitsMax }" >
    28     <br>
    29     工业投入:<input type="text" name="industryInvestMin" value="${gdp.industryInvestMin }" >--<input type="text" name="industryInvestMax" value="${gdp.industryInvestMax }" >
    30     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    31     农业收入:<input type="text" name="agIncomeMin" value="${gdp.agIncomeMin }" >--<input type="text" name="agIncomeMax" value="${gdp.agIncomeMax }" >
    32     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    33     月份:<input type="text" name="monthMin" value="${gdp.monthMin }" >--<input type="text" name="monthMax" value="${gdp.monthMax }" >
    34     <br>
    35     整月收入:<input type="text" name="yearMin" value="${gdp.yearMin }" >--<input type="text" name="yearMax" value="${gdp.yearMax }" >
    36     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    37     <input type="submit" value="查询" >
    38     
    39 </form>
    40 
    41 <table class="table">
    42     <tr>
    43         <td>全选</td>
    44         <td>省份</td>
    45         <td>月份</td>
    46         <td>人口数量</td>
    47         <td>工业收入</td>
    48         <td>工业投入</td>
    49         <td>工业利润</td>
    50         <td>工业利润率</td>
    51         <td>耗电量</td>
    52         <td>农业投入</td>
    53         <td>农业收入</td>
    54         <td>农业利润</td>
    55         <td>农业利润率</td>
    56         <td>工业收入比重</td>
    57         <td>操作</td>
    58     </tr>
    59     <c:forEach items="${info.list }" var="g">
    60         <tr>
    61             <td></td>
    62             <td>${g.pro.name }</td>
    63             <td>${g.month }</td>
    64             <td>${g.pro.pnum }</td>
    65             <td>${g.industryIncome }</td>
    66             <td>${g.industryInvest }</td>
    67             <td>${g.industryProfits }</td>
    68             <td>${g.industryProfitsMargin }%</td>
    69             <td>${g.eConsumer }</td>
    70             <td>${g.agInvest }</td>
    71             <td>${g.agIncome }</td>
    72             <td>${g.agProfits }</td>
    73             <td>${g.agProfitsMargin }%</td>
    74             <td>${g.industryBiZhong }%</td>
    75             <td><a>修改</a></td>
    76             
    77         </tr>
    78     </c:forEach>
    79 </table>
    80 <a href="findAll?pageNum=${info.pageNum==1?info.pageNum:info.pageNum-1 }">上一页</a>
    81 <a href="findAll?pageNum=${info.pageNum==info.pages?info.pageNum:info.pageNum+1 }">下一页</a>
    82 </body>
    83 </html>
  • 相关阅读:
    【零基础】量子纠缠图像问世,简单解读实验原理
    【零基础】一文读懂CPU(从二极管到超大规模集成电路)
    【零基础】搞定LAMP(linux、apache、mysql、php)环境安装图文教程(基于centos7)
    【零基础】Selenium:Webdriver图文入门教程java篇(附相关包下载)
    【零基础】快速入门爬虫框架HtmlUnit
    【零基础】speech driven animation中文安装使用指南
    【零基础】斯坦福四足机器人DIY指引
    【零基础】为什么Facebook发币就不一样
    【零基础】彻底搞懂51单片机各种型号(ATMEL系列)
    【零基础】简单说说一键果体APP的AI
  • 原文地址:https://www.cnblogs.com/tang0125/p/12878028.html
Copyright © 2011-2022 走看看