思路

  1. 首先将数据源中的日期字段,使用日期格式化函数,格式化为Y-M的形式
  2. 增加一列,使用日期格式化函数,获取去年的月份信息,命名为LAST_DATE
  3. 对同一个视图,进行左连接,获取当月的金额以及去年该月份的金额

实现关键代码

生成中间视图:

SELECTsum(`c`.`DISTRIBUTION_MONEY_`) AS `C_MONEY_`,`c`.`BRAND_TYPE_` AS `C_TYPE_`,(CASEWHEN ((`c`.`CITY_` = '咸阳市')OR (`c`.`CITY_` = '宝鸡市')OR (`c`.`CITY_` = '汉中市')OR (`c`.`CITY_` = '安康市')) THEN'宝鸡'WHEN ((`c`.`CITY_` = '渭南市')OR (`c`.`CITY_` = '商洛市')OR (`c`.`CITY_` = '榆林市')OR (`c`.`CITY_` = '延安市')) THEN'渭南'ELSE'西安'END) AS `C_RESION_`,date_format((`c`.`SIGNING_DATE_` - INTERVAL 1 YEAR),'%Y-%m') AS `C_LAST_DATE_`,date_format(`c`.`SIGNING_DATE_`,'%Y-%m') AS `C_DATE_`
FROM`t_import_contract_detail` `c`
WHERE(1 = 1)
GROUP BY`c`.`BRAND_TYPE_`,`C_RESION_`,`C_DATE_`

核心代码:

date_format((`c`.`SIGNING_DATE_` - INTERVAL 1 YEAR),'%Y-%m') AS `C_LAST_DATE_`,date_format(`c`.`SIGNING_DATE_`,'%Y-%m') AS `C_DATE_`

使用左连接,从而获取本月的去年同期数据

SELECT`a`.`C_TYPE_` AS `C_TYPE_`,`a`.`C_RESION_` AS `C_RESION_`,`a`.`C_DATE_` AS `C_DATE_`,`a`.`C_MONEY_` AS `C_MONEY_`,`a`.`C_LAST_DATE_` AS `C_LAST_DATE_`,`b`.`C_MONEY_` AS `C_LAST_MONEY`
FROM(`v_chart_contract` `a`
        LEFT JOIN `v_chart_contract` `b` ON (((`a`.`C_LAST_DATE_` = `b`.`C_DATE_`
                )AND (`a`.`C_RESION_` = `b`.`C_RESION_`
                )AND (`a`.`C_TYPE_` = `b`.`C_TYPE_`
                ))))

核心代码:

a`.`C_LAST_DATE_` = `b`.`C_DATE_`

效果

【mysql】查询本月和去年同期数据SQL相关推荐

  1. Mysql查询本月和上个月的数据

    MySql查询本月 select count(*) from tb_order where date_format( create_time, '%Y-%m') = date_format(now() ...

  2. mysql查询时间段内的数据

    mysql查询时间段内的数据 -- 今天 select fullName,addedTime from t_user where to_days(addedTime) <= to_days(no ...

  3. mysql查询某时间段的数据

    mysql查询某时间段的数据 1.查询今天.昨天.近7天.近30天数据 2.查询本周.上周数据 3.查询本月.上个月.距离当前现在6个月的数据 4.查询本季度.上个季度数据 5.查询今年.昨年数据 6 ...

  4. MySql查询随机几条数据

    MySql查询随机几条数据 想到了  Max  RAND  这几个函数 用以下2种办法都可以实现查询.  速度还行. 我的 IT技术资源库   http://www.itlib.tk/ 几十万数据左右 ...

  5. MySQL查询最近7天数据

    MySQL 查询最近7天数据 MySQL 查询最近7天数据 引用别人的博客内容,如有侵权,联系删除! 链接: mysql 日期取近七天.当前周七天 数据(补全空数据) 简单案例. 根据自己的工作稍作总 ...

  6. mysql 查询本年当前季度数据 ,SQL查询当前季度的数据

    使用如下 查询当前季度的数据 <select id="selAccumulativeTotalByQuarter" resultType="java.util.Ma ...

  7. mysql 查询各个时间段的数据

    点个收藏,以后查询时间段数据了,随时查看. -- 1 . 查看当天日期 2021-03-24 select current_date();-- 2. 查看当天时间 14:38:26 select cu ...

  8. mysql查询表里的重复数据方法

    1 2 3 4 INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11')   delete fro ...

  9. mysql查询表里的重复数据方法:

    1 2 3 4 INSERT INTO hk_test(username, passwd) VALUES ('qmf1', 'qmf1'),('qmf2', 'qmf11') delete from  ...

  10. beego mysql 查询_beego orm如何执行SQL查询

    beego orm包除了支持model查询的方式,也支持直接编写sql语句的方式查询数据. sql原生查询有如下特点: 使用 Raw SQL 查询,无需使用 ORM 表定义 多数据库,都可直接使用占位 ...

最新文章

  1. 查看mysql主外键信息
  2. js如何生成一个对象,并转化为json字符串
  3. oracle restart 静默安装,CentOS下静默安装Oracle 10.2.0.1.0
  4. Algorithm of permutation(全排列算法)
  5. Java初学者的学习思路与建议
  6. 免费Linux系统和生信宝典原创学习教程
  7. postgres+socket.io+nodejs实时地图应用实践
  8. C++ 一篇文章让你知道智能指针的魅力
  9. 山东女子学院计算机专业分数线,山东女子学院2020年山东省本科专业录取分数统计(含位次)...
  10. WordPress学习笔记(二)插件安装
  11. “bim”技术助力“智慧城市”建设
  12. go语言中文件的操作:
  13. python爬取网页数据出现中文乱码解决办法
  14. 当天剩余时间,当月剩余时间(秒数),用于redis设置过期时间
  15. 安庆集团-冲刺日志(第五天)
  16. linux snappy 版本,snappy初级文档
  17. 深入理解JVM—第二章:Java内存区域与内存溢出异常
  18. OPCUA 设置登录用户名与密码
  19. 微信多订单合并付款_微信小商店订单合并打单,操作分享请收藏!
  20. 分别使用正则表达式的子模式编号和子模式命名两种方法匹配ABAC、AABB、ABAB式成语

热门文章

  1. java更新word目录_java aspose.words 生成word目录和更新目录
  2. 数据库设计其一,前置库的使用场景
  3. 十三水牌型 图片_十三水三分天下是什么 十三水三分天下牌型详解
  4. 关于Windows和Linux的那些事儿
  5. 西安80转2000坐标系重新定义投影
  6. gnome桌面kali linux状态栏显示网速
  7. WebRTC之视频采集
  8. arm体系结构:arm920t
  9. apache php gd,lanp(linux+apache+gd库+php)的安装
  10. roundcube邮箱手机端_用户换了手机号码后,产品该如何应对?