非云之渐 2018-03-11 06:03 采纳率: 100%
浏览 2376
已采纳

sql查询前三周的数据,如果没有则显示前三周周数,数据显示为0

例如:当前为第10周,查询第7,8,9三周的数据。如果第8周没有数据,显示则为如下:
注 :数据库没有第八周的数据。(包括时间)
周数 列1
9 2
8 0
7 3

  • 写回答

4条回答 默认 最新

  • ╭⌒若隐_RowYet——大数据 大数据领域优质创作者 2018-03-12 02:22
    关注

    这个问题分两种情况;
    第一种是你的周日期数据会自动显示的,举个例子,即使第八周没有数据,也会显示出周的日期,如下表(表名:tablea,null表示数据为空)
    周日期 数据
    2018-03-12 xksd
    2018-03-05 wqsa
    2018-03-04 null
    2018-03-11 null
    2018-02-28 ghr
    2018-03-09 wqr
    2018-02-27 qweojnnd
    这种情况下只需要:
    select 周日期,count(1) as ‘数量’ from tablea where 周日期 between dateadd(ww,-3,convert(varchar(10),getdate(),120)) and convert(varchar(10),getdate(),120) group by 周日期 ;
    第二种情况:就是如果前一周的数据没有,就不会显示的话如图tableB:
    周日期 数据
    2018-03-12 xksd
    2018-03-05 wqsa
    2018-02-28 ghr
    2018-03-09 wqr
    2018-02-27 qweojnnd
    这种时候你还要你想要的显示结果的话,你要先生成时间维度表,具体生成方法可参考:https://www.cnblogs.com/wxjnew/p/5057713.html
    这样就能得到一个时间维度表dimdate;语句改为:
    select
    D.日期
    ,count(1) as ‘数量’
    from dimdate D
    left join tableb B
    on D.日期=B.日期
    where D.日期 between dateadd(ww,-3,convert(varchar(10),getdate(),120)) and convert(varchar(10),getdate(),120)

    group by D.日期 ;
    希望能解决你的问题!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元