[英]How to run stored procedure query between 2 table & insert data base on reference column?
我創建了一個簡單的存儲過程來更新我的Sample_TAG_NUMBERTEST
表,但是我需要它通過使用SOLine
和SONbr
來從另一個表PartItem
獲取ItemCode
,但我不知道如何編寫它。
第二件事是我的StatusCode
PR002
N001
DESC
列將自動插入NEW ORDER
數據值,對於PR002
我的DESC
列將變為Progress
。
我怎樣才能做到這一點? 提前致謝。
ALTER PROCEDURE [dbo].[SampleTagNumberUpdate]
@sONbr nvarchar(50) = NULL,
@SOLine nvarchar(50) = NULL,
@SerialNbr nvarchar(50) = NULL,
@StatusCode nvarchar(50) = NULL,
@PackType nvarchar(50) = NULL,
@PalletID nvarchar(50) = NULL,
@PackingListNo nvarchar(50) = NULL,
@ItemCode nvarchar(50) = NULL,
@CrDateTime nvarchar(50) = NULL,
@CrUserID nvarchar(50) = NULL,
@return nvarchar(50) = NULL OUTPUT
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS(SELECT sONbr , SOLine
FROM [SampleSystem].[dbo].[Sample_TAG_NUMBERTEST]
WHERE sONbr = @sONbr AND SOLine = @SOLine)
BEGIN
UPDATE [SampleSystem].[dbo].[Sample_TAG_NUMBERTEST]
SET SerialNbr = @SerialNbr
,StatusCode = @StatusCode
,PackType = @PackType
,PalletID = @PalletID
,PackingListNo = @PackingListNo
,ItemCode = @ItemCode
,LastUpdDateTime = GETDATE()
,LastUpdUserID = @CrUserID
WHERE sONbr = @sONbr AND SOLine = @SOLine
IF @@ERROR <> 0
Set @Return = 'UPDATE FAILED'
ELSE
Set @Return = 'UPDATE SUCCESSFULLY'
END
ELSE
BEGIN
INSERT INTO [SampleSystem].[dbo].[Sample_TAG_NUMBERTEST](SONbr, SOLine, SerialNbr
,StatusCode
,PackType
,PalletID
,PackingListNo
,ItemCode
,CrDateTime
,CrUserID)
VALUES(@sONbr, @SOLine, @SerialNbr, @StatusCode, @PackType
,@PalletID
,@PackingListNo
,@ItemCode
,GETDATE()
,@CrUserID)
IF @@ERROR <> 0
Set @Return = 'INSERT DATA FAILED'
ELSE
Set @Return = 'INSERT DATA SUCCESSFULLY'
END
END
我相信我已經為以下兩個問題提供了示例:
UPDATE T
SET ItemCode = (SELECT PI.ItemCode FROM PartItem AS PI WHERE PI.SO = @SO AND PI.SO_LINE = @SO_LINE),
DESC = CASE @StatusCode WHEN 'N001' THEN 'NEW ORDER'
ELSE CASE @StatusCode WHEN 'PR002' THEN 'PROGRESS' ELSE '' END
END,
<other columns here...>
FROM SAMPLE_TAG_NUMBERTEST AS T
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.