我已经能够找到类似的问题,我有一个,但没有帮助我解决!存储过程基于最小日期更新列
我有一个包含作业数据表(tablea
),架构如下:
CREATE TABLE [dbo].[tablea](
[ID] [int] IDENTITY(1,1) NOT NULL,
[JobNo] [varchar](32) NOT NULL,
[JobDesc] [varchar](255) NULL,
[RequiredDate] [datetime] NULL
此表中的某些工作在同一个表中的其他工作提供部件,展望未来我会打电话给乔布斯认为提供组件“生产作业”和接收组件“子作业”的作业 - 链接行的表中没有任何内容。
还有一个表(tableb
)
CREATE TABLE [dbo].[tableb](
[ID] [int] IDENTITY(1,1) NOT NULL,
[JobNo] [varchar](32) NOT NULL CONSTRAINT [DF_JobProducts_JobNo] DEFAULT (''),
[SubJobNo] [varchar](32) NULL
这包含“生产作业”作业号(tableb.JobNo
),并在同一行中,“子任务”的任务数(tableb.SubJobNo
)
NB如果“生产作业”提供组件7ד子作业”会有TableB中7×行
我必须执行一个存储过程,将更新的需求日期栏客观的“ produc作业“行的tablea与相关”子作业“的所需日期列的EARLIEST日期。在执行存储过程时,将使用唯一标识符作为变量 - 这将是“生产作业”的标题。
我尝试如下:
CREATE PROCEDURE [dbo].[UpdateDate]
@Title varchar(32),
AS
BEGIN
SET NOCOUNT ON;
UPDATE ta1
SET ta1.RequiredDate = ta2.RequiredDate
FROM tablea ta1
INNER JOIN tableb tb ON ta1.JobNo = tb.JobNo
INNER JOIN
(SELECT JobNo, MIN(RequiredTime)
GROUP BY JobNo
FROM tablea) ta2 ON tb.SubJobNo = ta2.JobNo
WHERE ta1.JobDesc = @Title
这让我难住了,所以任何帮助或指针将不胜感激!
什么是你尝试去错了吗?您是否收到特定的错误讯息?它是否更新错误的数据?请具体说明。 –
嗨,罗伯特。它更新日期,但它似乎与第一个“子工作”日期 - 不是最早的日期。 – user6731224