sql - 基于多列平均列
问题描述
我正在尝试计算库存可用时所有日子的平均库存变动。我有一个根据日期的股票变动清单。例如:
日期 | 物品 | 数量在 | 数量 |
---|---|---|---|
今天-3 | 项目 1 | 10 | 0 |
今天-3 | 项目 1 | 10 | 0 |
今天-3 | 项目 1 | 0 | 20 |
我也知道每个项目的当前库存水平。使用该信息,我每天为每个项目提取以下信息:期初库存水平、库存移动、库存移动。因此,例如:
项目 描述 |
Today-3 O/S |
今天-3 S/In |
今天 - 3 S/Out |
Today-2 O/S |
今天-2 S/In |
Today-2 S/Out |
Today-1 O/S |
今天-1 S/In |
Today-1 S/Out |
今日 操作系统 |
今天 进/进 |
今天 S/Out |
今日 C/股票 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
项目 1 | 0 | 20 | 20 | 0 | 0 | 0 | 0 | 20 | 10 | 10 | 0 | 10 | 0 |
我想对每行中的缺货列进行平均,但忽略没有可出售库存的日子(例如第 2 天)。所以,我想在 (O/S + Qty In) > 0 的日子里取 Qty Out 的平均值。有谁知道如何做到这一点?更好的是,有没有更笨拙的方法来实现我的目标?我仍然对 SQL 很陌生,并且总是觉得我给自己带来了很多痛苦。
这是我目前查询的基本结构。
SELECT
[Description_1]
, MAX([Qty_On_Hand]) - isnull(sum(case when [TxDate] = "Today" then [QtyIn] end), 0) + isnull(sum(case when [TxDate] = "Today" then [QtyOut] end), 0) 'Today O/S'
, isnull(sum(case when [TxDate] = "Today" then [QtyIn] end), 0) 'Today S/In'
, isnull(sum(case when [TxDate] = "Today" then [QtyOut] end), 0) 'Today S/Out'
, MAX([Qty_On_Hand]) AS 'Today C/Stock'
FROM [Transactions]
WHERE TrCode in ("Codes I want")
GROUP BY [Description_1]
我将把这个查询拉到 Power BI 采购仪表板中。该信息将用作重新排序计算的一部分。
解决方案
推荐阅读
- python - 不忽略 db.sqlite3 文件,即使我在 django 项目的 .gitignore 中指定
- java - 用户输入中的非重复数字
- android - Android:英特尔 x86 仿真器加速器 HAXM 安装程序 - “修订:7.5.6”更新失败
- ruby-on-rails - 如何在 RSPEC 中测试链调用?
- php - 在laravel中bcrypt密码后我无法登录
- c# - 如何在 asp.net core 中设置用户特定的会话超时
- javascript - 在反应中读取与跨站点资源关联的cookie
- docker - 如何调试 Telegraf 为什么不将数据从 MQTT 发送到 influxdb
- google-cloud-sql - Google Cloud SQL 上的 PostgREST:unix 套接字 URI 格式?
- flutter - 转换为类型类 dart http 响应体