#ds1数据集sql :
select strftime('%Y-%m',订购日期) as 日期,strftime('%Y',订购日期) as 年份,count(订单.订单ID) as 订单数量,sum(case when 是否已付="true" then 1 else 0 end) as 已付订单数量, sum(单价*数量) as 月销量
from 订单 join 订单明细 on 订单.订单ID=订单明细.订单ID
where 1=1 ${if(len(年份) == 0,"","and strftime('%Y',订购日期) = '" + 年份 + "'")}
group by 2,1 order by 1

公式解析:

1. strftime(’%Y-%m’,订购日期):

提取订购日期中的年份月份并用“-”隔开,即 从2011-01-11 提取 2011-01

2. sum(case when 是否已付=“true” then 1 else 0 end):

判断语句统计已付订单的数量

3. where 1=1 ${if(len(年份) == 0, “”, “and strftime(’%Y’,订购日期) = '” + 年份 + “’”)}:

(1)where 1=1: 1=1 永远成立,可以确保where后的语句不会报错,where之前的语句始终执行
(2)${if(len(年份) == 0, “”, “and strftime(’%Y’,订购日期) = '” + 年份 + “’”)}

1、加入if(len(年份) == 0,的判断是为了无年份参数值输入时可以显示全部年份所有的信息,即

select strftime('%Y-%m',订购日期) as 日期,strftime('%Y',订购日期) as 年份,count(订单.订单ID) as 订单数量,sum(case when 是否已付="true" then 1 else 0 end) as 已付订单数量, sum(单价*数量) as 月销量
from 订单 join 订单明细 on 订单.订单ID=订单明细.订单ID
where 1=1
group by 2,1 order by 1

2、如果年份的字段长度不为 0 ,那么执行的语句是

select strftime('%Y-%m',订购日期) as 日期,strftime('%Y',订购日期) as 年份,count(订单.订单ID) as 订单数量,sum(case when 是否已付="true" then 1 else 0 end) as 已付订单数量, sum(单价*数量) as 月销量
from 订单 join 订单明细 on 订单.订单ID=订单明细.订单ID
where 1=1  and strftime('%Y',订购日期) =  ${"'" +年份 + "'"}
group by 2,1 order by 1

将年份作为参数,将该参数获取到的值与数据库中的订购日期(年)比较作为筛选条件;

4、输入参数值年份时,输入的是数字ex:2011,2010等,但在数据库中订购日期是字符串类型的,所以将参数传递的值转换成字符串类型,ex:‘2011’,‘2010’


4. group by 2,1 order by 1:

(1)group by 2,1:

2,1指的是select后的字段,即年份和日期;通过年份和日期进行分组

(2)order by 1:

即通过日期进行排序


表格效果图如下:

根据选择的年份统计出该年下每个月的订单总数、已付订单数量、月销量(帆软软件查询数据)相关推荐

  1. 整理1978-2019年中国GDP平减指数(可选择任意年份)

    整理1978-2019年中国GDP平减指数(可选择任意年份) 数据说明:中国大陆GDP平减指数,系全国全行业数据,如需分省分行业数据可自行计算: 计算说明:GDP平减指数=名义GDP/实际GDP ,实 ...

  2. 2019 年一年中蒸发量和降水量的数据(单位毫米),请你选择合适的图表来对比每个月的蒸发量和降水量,并将其画出来。

    Question: 2019 年一年中蒸发量和降水量的数据(单位毫米),请你选择合适的图表来对比每个月的蒸发量和降水量,并将其画出来. 绘制上图的代码如下: x = np.arange(3) widt ...

  3. HJ37 统计每个月兔子的总数

    描述 有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少? 本题有多组数据. 输入描述: 输入int型表示month 输 ...

  4. 河南省计算机三级准考证打印入口,2016年下半年河南计算机三级准考证打印入口及网址,计算机等级考试时间查询...

    <2016年下半年河南计算机三级准考证打印入口及网址,计算机等级考试时间查询>是由传播招生网为你搜集整理,希望对你有所帮助.如有变动,请以官方网站发布为主.本文内容来源于网络,仅供参考. ...

  5. JavaScript算法(实例八)递归计算每个月的兔子总数【斐波那契数列】

    古典问题:有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只兔子,假如兔子都不死,问每个月的兔子总数为多少? 思考这道题的时候,如果你简单的推算一下,会发现每个月的兔 ...

  6. 华为机试HJ37:统计每个月兔子的总数(斐波那契数列)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 有一只兔子,从出生后第3个月起每个月都生一只兔子,小兔子长到第三个月后每个月又生一只 ...

  7. C语言试题106之有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    1.题目 题目:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:兔子的规律为数列 1,1,2,3,5, ...

  8. 实例011:养兔子 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    实例011:养兔子 题目:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:出生下来为第0个月,满月为1月兔, ...

  9. 【python进阶】古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    古典问题: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 方法一:简单方法 month = int(input( ...

最新文章

  1. 为什么一定要杀掉病毒?---帮一位老师解决MyDocument.exe优盘文件夹图标病毒问题...
  2. 随机验证码 php
  3. oracle 中表示字符串使用单引号
  4. 测试必知的150个Linux命令
  5. boost::mpl::not_equal_to相关的测试程序
  6. 通俗易懂了解Vue双向绑定原理及实现
  7. 关于登陆到域的用户,不需要显示登陆界面的问题(aspx)
  8. sweetalert php,SweetAlert插件
  9. 关于ASP.NET 中的主题
  10. ubuntu防火墙关闭命令-转
  11. jquery 初步(四)内容过滤器
  12. 苹果库乐队怎么玩_学会这个,自己给苹果手机换来电铃声
  13. Hills And Valleys(贪心/枚举)
  14. oracle 大于当天时间_ORACLE日期时间函数大全
  15. 浅谈编程能力的培养与提高——写给编程初学者的话
  16. JavaScript 剪贴板
  17. 从《道德经》看项目经理修炼的7条法则,你做到了几条?
  18. Python爬虫实战之爬取QQ音乐数据
  19. C语言中 指针变量 取地址符的用法 *指针变量名的用法
  20. 关于BAPI 的作用

热门文章

  1. LT8712X DP转HDMI VGA转换器与USBC TYPE-C芯片
  2. 无屏电视:智能电视的终极形态?
  3. 拆解19年雅诗兰黛双十一25分钟预售破5亿的营销策略
  4. 在51单片机上使用DS1302
  5. pycharm编辑器:cannot import name ‘自定义函数’ 的一种解决方法
  6. 使用易语言搭建WEB服务器且支持大文件下载/断点传输
  7. 现在真是孤陋寡闻,access 也有存储过程
  8. 日记 or 小小说 :想进腾讯的师弟师妹们,别学我 (三)
  9. Apollo(分布式配置中心)核心概念及核心功能介绍
  10. javaSE、javaEE、Android知识点总结