布尔值是否大于x?

时间:2018-07-11 18:33:14

标签: sql sql-server tsql

对大家有意思的问题。这是我的数据集的一个示例(见下文)。我有仓库,日期和给定仓库在特定日期的库存级别的 更改

例如:假设1/1/2018是第一个日期,则仓库1开始时的库存为100,然后是600,然后是300,然后是500 ...等等。

我想在SQL中回答我的问题:根据仓库ID,每个仓库是否有超过750个库存(是/否)?

我无法汇总整列,因为期末库存(每个仓库的列总和)可能低于过去的库存水平。任何帮助表示赞赏!

+--------------+------------+---------------+
| Warehouse_id |    Date    | Inventory_Amt |
+--------------+------------+---------------+
|            1 | 1/1/2018   | +100          |
|            1 | 6/1/2018   | +500          |
|            1 | 6/15/2018  | -300          |
|            1 | 7/1/2018   | +200          |
|            1 | 8/1/2018   | -400          |
|            1 | 12/15/2018 | +100          |
|            2 | 1/1/2018   | +10           |
|            2 | 6/1/2018   | +50           |
|            2 | 6/15/2018  | -30           |
|            2 | 7/1/2018   | +20           |
|            2 | 8/1/2018   | -40           |
|            2 | 12/15/2018 | +10           |
|            3 | 1/1/2018   | +100          |
|            3 | 6/1/2018   | +500          |
|            4 | 6/15/2018  | +300          |
|            4 | 7/1/2018   | +200          |
|            4 | 8/1/2018   | -400          |
|            4 | 12/15/2018 | +100          |
+--------------+------------+---------------+

1 个答案:

答案 0 :(得分:4)

您想要一个累加和然后过滤:

select i.*
from (select i.*, sum(inventory_amt) over (partition by warehouse_id order by date) as inventory
      from inventory i
     ) i
where inventory_amt > 750