tsql - 需要通过选择开始日期来显示第二班数据?
问题描述
第二班创建库存,并在当时加盖时间戳。问题是在报告时,如果我选择 2019 年 1 月 10 日的第二班,我将不会获得午夜之后创建的任何库存,因为日期已更改。
例如:9号2班生产了两个项目。一个在午夜之前,一个在午夜之后。我运行了一份报告,询问第二班在 9 日生产了什么,但它只返回托盘一而不是托盘二,因为从技术上讲,托盘二是在 10 日创建的。
我不能只选择9号和10号二班,因为那样我会得到9号二班生产的后半部分,以及10号二班生产的前半部分。我也不想让我的报告查看者输入除日期之外的时间。
我需要两件事中的一件…… 1. 一种输入这些数据的方式,我可以得到我需要的数据。2.一种以我可以获得所需数据的方式输出此数据的方法。(这个最好)
数据在 SQL 中,我正在 SSRS 中创建此报告。我试过输入日期和时间,但仍然没有得到想要的结果......
解决方案
由于您的数据中似乎有您的班次编号并且带有时间戳,您可以使用 CASE 语句根据班次调整日期时间。
SELECT SHIFT, PRODUCTION_DATE,
CASE SHIFT WHEN 2 THEN DATEADD(HOUR, -8, PRODUCTION_DATE) ELSE PRODUCTION_DATE END AS PRODUCTION_DATE_ADJUSTED
FROM TABLE
推荐阅读
- c++ - 是否可以在不调用 std 异步的情况下使用阻塞析构函数创建 std 未来?
- javascript - 如何为类中定义的依赖项设置 Sinon 间谍,而不是 Sinon 存根?
- ios - 填充 UICollectionViewCell 的高度
- asp.net-core - 如何在 ASP.NET Core 中检索控制器类型?
- google-cloud-platform - Google Ad 如何使用我传递给它的细分信息
- java - 由打包安装程序(使用 jpackage 创建)安装的 Java 程序在后台运行(不打开任何窗口) - 错误
- c# - 如何在 C# 进程中为 Cmder 设置参数
- angular - 故事书找不到模块'@storybook/angular'
- docker - AWS ECS-任务自动退出,退出代码为 0
- ruby-on-rails - 如何在另一个序列化程序中使用模型的实例