如何提取范围内的日期?

兔子

我有一个表(SQL Server 2017),其中包含日期范围内的数据。

+---------+----------+------------+---------------+-------------+
| good_id | store_id | promo_name | date_id_begin | date_id_end |
+---------+----------+------------+---------------+-------------+
| 1122    | 42       | promo_1    | 2020-02-01    | 2020-02-05  |
+---------+----------+------------+---------------+-------------+
| 2244    | 41       | promo_2    | 2020-03-01    | 2020-03-03  |
+---------+----------+------------+---------------+-------------+

我需要在此期间每天获取此数据。

+---------+----------+------------+---------------+
| good_id | store_id | promo_name | date_id_begin |
+---------+----------+------------+---------------+
| 1122    | 42       | promo_1    | 2020-02-01    |
+---------+----------+------------+---------------+
| 1122    | 42       | promo_1    | 2020-02-02    |
+---------+----------+------------+---------------+
| 1122    | 42       | promo_1    | 2020-02-03    |
+---------+----------+------------+---------------+
| 1122    | 42       | promo_1    | 2020-02-04    |
+---------+----------+------------+---------------+
| 1122    | 42       | promo_1    | 2020-02-05    |
+---------+----------+------------+---------------+
| 2244    | 41       | promo_2    | 2020-03-01    |
+---------+----------+------------+---------------+
| 2244    | 41       | promo_2    | 2020-03-02    |
+---------+----------+------------+---------------+
| 2244    | 41       | promo_2    | 2020-03-03    |
+---------+----------+------------+---------------+

我可以从循环内的某个范围提取日期,但是如何选择其他信息(good_id,store_id,promo_name)?

约翰·卡佩莱蒂

如果您没有日历或理货表格,则可以使用临时理货表格。

Select A.[good_id]
      ,A.[store_id]
      ,A.[promo_name] 
      ,[Date] = B.D
 From  YourTable A
 Join  (
         Select Top (25000) D=DateAdd(DAY,Row_Number() Over (Order By (Select Null)),'1999-12-31') From  master..spt_values n1,master..spt_values n2
       ) B  on D between date_id_begin and date_id_end

退货

good_id store_id    promo_name  Date
1122    42          promo_1     2020-02-01
1122    42          promo_1     2020-02-02
1122    42          promo_1     2020-02-03
1122    42          promo_1     2020-02-04
1122    42          promo_1     2020-02-05
2244    41          promo_2     2020-03-01
2244    41          promo_2     2020-03-02
2244    41          promo_2     2020-03-03

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在范围内添加日期

来自分类Dev

在日期范围内提取数据的最佳方法是什么?

来自分类Dev

在指定的日期范围内如何查找给定的日期

来自分类Dev

如何检查日期是否在指定的日期范围内

来自分类Dev

Laravel:如何分别获得日期范围内的所有日期和日期范围内的所有日期?

来自分类Dev

标记范围内的日期

来自分类Dev

日期范围内的天数

来自分类Dev

查找日期在范围内

来自分类Dev

在日期范围内搜索

来自分类Dev

如何提取位于Sql范围内的数据

来自分类Dev

无论年份如何,如何检查日期是否在范围内

来自分类Dev

MYSQL如何计算日期范围内的列总和

来自分类Dev

如何获得给定日期范围内的天数

来自分类Dev

如何突出显示指定范围内的日期?

来自分类Dev

如何检索特定日期范围内的数据?

来自分类Dev

Firebase-如何检索日期范围内的对象?

来自分类Dev

我如何在DRF的日期范围内获得项目

来自分类Dev

如何在根范围内访问解决日期

来自分类Dev

如何在日期范围内删除元素

来自分类Dev

如何设置日期范围内的所有日志文件

来自分类Dev

如何按组填写范围内的缺失日期

来自分类Dev

如何检查时间是否在日期范围内

来自分类Dev

Firebase,如何在日期范围内对键进行排序

来自分类Dev

如何获取日期范围内的数据总和

来自分类Dev

查找日期范围内的可用日期

来自分类Dev

检查日期是否在日期范围内

来自分类Dev

查找日期范围内的可用日期

来自分类Dev

处理日期范围内的NULL日期

来自分类Dev

过滤或检查日期范围内的日期