私は同じ問題を発見できましたが、解決するのに役立ちません。最小日付に基づいて列を更新するストアドプロシージャ
次のように私は、スキーマのジョブデータを含むテーブル(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
)
「生産ジョブが」7×「サブジョブ」の成分がテーブルB
7 x行が存在するであろう提供する場合、私は」の必要な日付列を更新するストアドプロシージャを実行するための目的を持っているNB生産関連する「サブジョブ」の必須の日付列の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
これは私が任意のヘルプまたはポインタをいただければ幸いですので困惑してしまいました!
?特定のエラーメッセージが表示されますか?間違ったデータを更新していますか?具体的にしてください。 –
こんにちはRobertさん。それは日付を更新しますが、それは第一の "サブジョブ"日付で行うように思われます。 – user6731224