sql语句问题

我想提取上个月各厂的runRate,并计算它们的平均值。每个月只有一条数据,但日期不定。请问where后边的ReportDate应该如何写。。。上个月不是每天都有值,一个月只有一条,(比如每月的1号会有一条数据,但是不一定是1号),能确定的是月份,无法确认日期,现在想取上个月的数据,能不能把日期干脆忽略掉。

SELECT AVG(runRate) as runrate FROM dbo.[MonthReport] where ReportDate= '${MONTHDELTA(TODAY(), -1)}'


FineReport 故事的小黄瓜 发布于 2018-11-30 15:56 (编辑于 2018-11-30 16:08)
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
axingLv6专家互助
发布于2018-11-30 16:00(编辑于 2018-11-30 16:09)

ReportDate这个字段是日期型吧,转化一下

SELECT AVG(runRate) as runrate FROM dbo.[MonthReport] where convert(varchar(7),ReportDate,23)= '${left(MONTHDELTA(TODAY(), -1),7)}'

  • 故事的小黄瓜 故事的小黄瓜(提问者) 不好意思,您这个的意思应该是取上个月的今天所对应的值吧,但是实际情况是上个月不是每天都有值,一个月只有一条,(比如每月的1号会有一条数据,但是不一定是1号),能确定的是月份,无法确认日期,现在想取上个月的数据,能不能把日期干脆忽略掉。
    2018-11-30 16:07 
  • axing axing 回复 故事的小黄瓜(提问者) 已忽略日
    2018-11-30 16:09 
最佳回答
0
FaintLv6中级互助
发布于2018-11-30 15:57

日期不定的意思是根据月份来筛选么,每个数据库都有截取月份的函数吧

最佳回答
0
lingluoLv3见习互助
发布于2018-11-30 16:12(编辑于 2018-11-30 16:14)

日期存储是字符串么,不是转化下,直接substr到月查不行么,SELECT AVG(runRate) as runrate FROM dbo.[MonthReport] where substr(ReportDate,1,7)= substr('${MONTHDELTA(TODAY(), -1)}',1,7)

  • 4关注人数
  • 638浏览人数
  • 最后回答于:2018-11-30 16:14
    请选择关闭问题的原因
    确定 取消
    返回顶部