整理几个常用的sql和其他代码

简介: 整理几个常用的sql和其他代码

常用的几个sql整理
1.按照日期统计今天的客流信息。

SELECT * FROM base_disanfang 
WHERE DATE_FORMAT(create_time,'%Y-%m-%d') = DATE_FORMAT(NOW(),'%Y-%m-%d')

其中base_disanfang为表名,create_time日期的字段名。

还有另外一种写法,查询速度比较快点儿。

SELECT * FROM base_disanfang WHERE DATE(create_time) = CURDATE()

2.按照日期统计本月的客流信息。

SELECT * FROM buss_flow_list
    WHERE DATE_FORMAT(TIME,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')

其中buss_flow_list为表名,TIME日期的字段名。

3.按照日期统计今年的客流信息。

SELECT * FROM base_month_flow
    WHERE DATE_FORMAT(TIME,'%Y') = DATE_FORMAT(NOW(),'%Y')

其中base_month_flow为表名,TIME日期的字段名。

4.上月低免地区的客流量

SELECT * FROM base_month_flow
    WHERE DATE_FORMAT(TIME,'%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m')
    AND state_id = 1;

其中base_month_flow为表名,TIME日期的字段名,state_id区分是否为抵免地区。

这几个sql都是对日期进行处理比较常用的,sql写好了就无需在代码中做过多的操作。

其他注意事项
1.如果数据返回的是Long类型,则在mybatis的配置文件中需要注意resultType的类型为java.lang.Long,如下:

xml文件:

    <select id="getMonthsKeLiu"  resultType="java.lang.Long">
        SELECT SUM(in_count) FROM buss_flow_list
        WHERE DATE_FORMAT(TIME,'%Y-%m') = DATE_FORMAT(NOW(),'%Y-%m')
          AND  dept_id = #{deptId}
          AND state_id = #{stateId}
    

接口:

/**
     * 根据场馆编号查询本月的客流量
     * @param deptId  场馆编号
     * @param stateId  是否为抵免地区,0:全部  1:低免地区
     * @return
     */
    public Long getMonthsKeLiu(@Param("deptId") Long deptId,@Param("stateId") Integer stateId);

2.如果查询的返回数据未null或者空的时候,则需要判断,代码如下:

/**
     * 根据场馆编号获取场馆信息
     * @param deptId
     * @return
     */
    @GetMapping(value = "/getDeptDetails/{deptId}")
    public AjaxResult getDeptDetails(@PathVariable(value = "deptId", required = false)  Long deptId)
    {
        SysDeptVo deptVo = new SysDeptVo();
        //获取本日的客流量  null就是0,否则就是查出来的值
        Long days_all = baseDisanfangService.getDaysKeLiu(deptId)==null? 0:baseDisanfangService.getDaysKeLiu(deptId);
        //获取本月的客流(全部)
        Long months_all = bussFlowListService.getMonthsKeLiu(deptId,0)==null?0:bussFlowListService.getMonthsKeLiu(deptId,0);
        //获取本年的总客流(全部)--今年所有月+本月的
        Long years_all =(baseMonthFlowService.getYearsKeLiu(deptId,0)==null?0:baseMonthFlowService.getYearsKeLiu(deptId,0))+months_all;
        //获取总客流(全部的)--所有月的加上本月的
        Long total_all = (baseMonthFlowService.getTotalKeLiu(deptId,0)==null?0:baseMonthFlowService.getTotalKeLiu(deptId,0))+months_all;
        //获取上月低免客流
        Long top_month_dimian = baseMonthFlowService.getTopMonthDiMianKeLiu(deptId,1)==null?0:baseMonthFlowService.getTopMonthDiMianKeLiu(deptId,1);
        //获取本月的低免客流
        Long month_dimian = bussFlowListService.getMonthsKeLiu(deptId,1)==null?0:bussFlowListService.getMonthsKeLiu(deptId,1);
        //获取本年的低免客流---所有月的加上本月的
        Long year_dimian =(baseMonthFlowService.getYearsKeLiu(deptId,0)==null?0:baseMonthFlowService.getYearsKeLiu(deptId,0))+month_dimian;
        //获取低免的总客流---所有月的加上本月的
        Long total_dimian = (baseMonthFlowService.getTotalKeLiu(deptId,1)==null?0:baseMonthFlowService.getTotalKeLiu(deptId,1))+month_dimian;
        //都放在VO里面
        //获取场馆对象
        deptVo.setSysDept(deptService.selectDeptById(deptId));
        deptVo.setDaysKeLiu(days_all);
        deptVo.setMonthKeLiu(months_all);
        deptVo.setYearKeLiu(years_all);
        deptVo.setTotalKeLiu(total_all);
        deptVo.setTopMonthDiMianKeLiu(top_month_dimian);
        deptVo.setYearDiMianKeLiu(year_dimian);
        deptVo.setTotalDiMianKeLiu(total_dimian);
        return AjaxResult.success(deptVo);
    }

目录
相关文章
|
4月前
|
SQL XML Java
整理几个常用的sql和其他代码
整理几个常用的sql和其他代码
|
4月前
|
SQL Oracle 关系型数据库
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)
|
SQL
SQL书部分知识点总结
SQL书部分知识点总结
46 0
|
SQL XML Java
常用的几个sql整理
常用的几个sql整理
125 0
常用的几个sql整理
|
SQL
在SQL里如何写条件逻辑?
主要涉及CASE,WHEN之类。。 不同的服务器上实现if...else...是不一样的。 建议用CASE ,WHEN,因为它们是SQL国标呢。 mysql> SELECT -> SUM(CASE -> WHEN EXTRACT(YEAR FROM open_dat...
974 0
|
SQL 存储 数据库
|
SQL 存储 程序员
如何写出高质量的SQL代码?
我们在写SQL代码的过程中,总会遇到一些奇奇怪怪的问题,比如少了个分号,标点符号写成全角了,表名多了个空格等等。这些问题一执行就报错,错了怎么也找不出问题所在。 今天给小伙伴讲讲如何写出高质量的SQL代码?
|
SQL 数据库 索引
SQL基础知识V2——SQL语句快速参考
以下是一些可以当工具书使用的参考语句,都是固定写法,需要的时候可以拿出来参考一下,一些不懂的可以暂时先跳过,紫色代码均是SQL语句的关键字~
|
SQL 数据库 Python
SQL学习记录
个人SQL学习记录
1115 0
SQL 笔记(函数)
SQL 笔记(函数) 1.AVG AVG 函数用于返回数列的平均值。 语法:Select avg(字段名) from 表名。 例子: Select avg(count) AS count_avg from access_log。
8904 0