Возвращать последний набор результатов только в том случае, если возвращены несколько вариантов - PullRequest
0 голосов
/ 27 января 2020

У меня есть условное значение T SQL, в котором, основываясь на результатах первого запроса, я могу или не могу запустить следующий запрос и то же самое для третьего и последнего запроса.

DECLARE  @ERRORID_EXT [INTEGER]
        ,@ERRORDESC_EXT [VARCHAR](255) 
        ,@ERRORID_CLOSE [INTEGER]
        ,@ERRORDESC_CLOSE [VARCHAR](255)

        ,@ORDERNUM [VARCHAR](24) 
        ,@VENDORID [VARCHAR](12) 
        ,@SHOPID [VARCHAR](12) 
        ,@AMOUNT [NUMERIC](15, 6) 
        ,@PERCENTALLOWED [NUMERIC](4, 2) 
        ,@LCID INT
        ,@SECTION INT

        ,@Approver [VARCHAR](50)

SET     @ORDERNUM = '52P-00006809'
SET     @VENDORID = 'STMGU'
SET     @SHOPID = '52'
SET     @AMOUNT = 85.00
SET     @Approver = 'TEST'



EXEC    EXTENDED 
             @ERRORID_EXT OUTPUT
            ,@ERRORDESC_EXT OUTPUT
            ,@ORDERNUM
            ,@VENDORID
            ,@SHOPID
            ,@AMOUNT
            ,@PERCENTALLOWED
            ,@LCID
            ,@SECTION

-- Return the error code
SELECT   @ERRORID_EXT AS StatusCode
        ,@ERRORDESC_EXT AS Message

IF @ERRORID_EXT = 0 OR @ERRORID_EXT = 635

BEGIN
EXEC    CLOSE
             @ERRORID_CLOSE OUTPUT
            ,@ERRORDESC_CLOSE OUTPUT
            ,@ORDERNUM
            ,@VENDORID
            ,@SHOPID
            ,@AMOUNT
            ,@PERCENTALLOWED

SELECT   @ERRORID_CLOSE AS StatusCode
        ,@ERRORDESC_CLOSE AS Message


-- IF NO ERROR THEN UPDATE SHOP AP DB
IF @ERRORID_CLOSE = 0 OR @ERRORID_CLOSE = 635


UPDATE  ShopAP.dbo.ShopPO
SET     ModifiedDate = GETDATE(),
        ApprovalDate = GETDATE(),
        Approver = @Approver
WHERE   ID = @INVOICEID
    AND ApprovalDate IS NULL

IF (@@ROWCOUNT > 0)
BEGIN
    SELECT 0 AS StatusCode, 'Success' AS Message
END
ELSE 
BEGIN
    SELECT 999 AS StatusCode, 'Failed' AS Message
END
END

Это может В результате получается до трех наборов результатов. Проблема в том, что мой API видит только первый набор результатов.

enter image description here

Все, что я хочу, это самые последние результаты. Как я могу получить только последний StatusCode / Message?

1 Ответ

0 голосов
/ 27 января 2020

Я решил использовать табличную переменную и добавить к ней результаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...