设置
我正在使用 SQL Server DB 来跟踪制造环境中生产中的各种案例。数据库有两个表:
- 状态表:跟踪这些案例的状态,其中一列包含表示案例状态的整数代码。所有代码大于 0 的案例都是“生产中”,而代码小于或等于 0 的案例要么是“完成”,要么是“已取消”。
- 日志表:跟踪特定案例发生的变化以及这些变化发生的时间。“什么”方面被捕获为字符串和代码。“何时”是一个日期时间字段。
问题/任务/问题
我想查询所有生产中的案例以及过去两天内完成或取消的任何案例。在日志中,我有一个日期时间列和一个特定于取消或完成案例的代码。我假设查询可能会来自日志中的任何情况,这些情况具有这些代码中的任何一个,并且日期时间在现在之前的 48 小时内。但我不太确定如何去做。我的查询的第一部分(获取生产中的案例)如下:JOIN
SELECT * FROM test.dbo.status WHERE status > 0
任何帮助将不胜感激。提前致谢!
更新 为了澄清,两件事:
我希望查询返回状态表中与上述条件匹配的记录的所有列,而不仅仅是 ID 或其他内容。
表结构:
CREATE TABLE [dbo].[status]( [serial] [varchar](10) NOT NULL, [type] [varchar](50) NULL, [commit_date] [date] NULL, [sent_to_prod] [date] NULL, [target] [date] NULL, [sent_to_mfg] [date] NULL, [status] [int] NULL, [notes] [bit] NULL, [hold] [bit] NULL, [canceled] [bit] NULL, [priority] [bit] NULL, [vendors] [varchar](150) NULL, [rework] [varchar](50) NULL, [created_on] [datetime] NULL, [modified_on] [datetime] NULL ) CREATE TABLE [dbo].[log]( [serial] [varchar](13) NOT NULL, [action] [varchar](200) NOT NULL, [who] [varchar](80) NOT NULL, [time] [datetime] NOT NULL, [code] [varchar](20) NOT NULL )