【发布时间】:2017-08-23 08:11:01
【问题描述】:
我有一个临时表,我已经填充了一个运行总计。我使用了 SQL Server 窗口函数。我的临时表中的数据格式如下:
|Day | Sku Nbr | CMQTY |
| 1 | f45 | 0 |
| 2 | f45 | 2 |
| 3 | f45 | 0 |
| 4 | f45 | 7 |
| 5 | f45 | 0 |
| 6 | f45 | 0 |
| 7 | f45 | 0 |
| 8 | f45 | 13 |
| 9 | f45 | 15 |
| 10 | f45 | 21 |
我想对数据进行操作,使其显示如下:
|Day| Sku Nbr | CMQTY |
| 1 | f45 | 0 |
| 2 | f45 | 2 |
| 3 | f45 | 2 |
| 4 | f45 | 7 |
| 5 | f45 | 7 |
| 6 | f45 | 7 |
| 7 | f45 | 7 |
| 8 | f45 | 13 |
| 9 | f45 | 15 |
| 10 | f45 | 21 |
我尝试使用延迟函数,但是当我连续多天使用 0 CMQTY 时会出现问题。我也尝试过使用 CASE WHEN 逻辑但失败了。
【问题讨论】:
-
第4行保留CMQTY为7的逻辑是什么?
-
保留 CMQTY 为 7 是没有逻辑的。那是原始值。天数为 1 到 31,CMQTY 将为 0 或截至当天的运行总数。如果这不能回答你的问题,请告诉我。我的目标是当 CMQTY 之前的值不等于 0 时从 0 中删除它们。
-
仍然不清楚您的要求...您能提供更多行作为示例吗?
-
我添加了更多记录以供理解。顶部显示我所拥有的。底部显示我需要的内容。
-
下面的查询给出了你的输出...
标签: tsql reporting-services ssms ssrs-2012