I've created a simple stored procedure to update my Sample_TAG_NUMBERTEST
table but I need it to get an ItemCode
from another table PartItem
by using both SOLine
& SONbr
to do the query but I don't know how to write it.
2nd thing I need to do is when my StatusCode
column is N001
then my DESC
column will automatically insert NEW ORDER
data value, for PR002
my DESC
column will become Progress
.
How can I do that? Thanks in advance.
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
I believe I have provided an example for both questions below:
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
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.