SQL Присоединить запрос с предложением With - PullRequest
0 голосов
/ 22 мая 2019

Мне нужно объединить 2 запроса, но я не могу понять, как это сделать, потому что я добавил предложение with, чтобы запрос стал более понятным.

Вот основной запрос

    SELECT
    Id,
    Referencia,     
    UAP, 
    ConsumoWeek01 AS ConsumoWeek01, 
    ConsumoWeek02, 
    CASE 
        WHEN Stock IS NULL THEN 0
    ELSE    
        Stock
    END AS Stock ,
    PecasPorCaixa
FROM OPENQUERY(MACPAC, 
    'SELECT 
        ROW_NUMBER() OVER(ORDER BY A.RH6001 ASC) AS Id,
        A.RH6001 as Referencia, 
        A.RH6002 as UAP, 
        A.RH6030 as ConsumoWeek01, 
        A.RH6031 as ConsumoWeek02,
        IC130M.LLBLT1 as Stock,
        0 AS PecasPorCaixa
    FROM AUTO.D805DATPOR.TRP060H AS A
    LEFT JOIN AUTO.D805DATPOR.IC130M IC130M 
    ON A.RH6001 = IC130M.LLPPN AND
         IC130M.LLSTLC =
             CASE A.RH6002
                  WHEN ''UAP1'' THEN ''M1''
                  WHEN ''UAP2'' THEN ''M2''
                  WHEN ''UAP3'' THEN ''M3''
                  WHEN ''UAP4'' THEN ''M4''
                  WHEN ''UAP5'' THEN ''M5''
                  WHEN ''UAP6'' THEN ''M6''
                  WHEN ''UAPP'' THEN ''PROTOS''
                  WHEN ''EXT'' THEN ''EXTR''
                END     
    WHERE (A.RH6001 Not Like ''FS%'') 
    AND A.RH6030 <> 0
    ORDER BY Referencia DESC')

А вот запрос, к которому я хочу присоединиться

SELECT * 
FROM OPENQUERY(MACPAC,
    'WITH maxFornecedor AS
     (
        SELECT
            YDA3REP.A3ARCD,
            YDA3REP.A3D5CD,
            ROW_NUMBER() OVER ( PARTITION BY YDA3REP.A3D5CD ORDER BY YDA3REP.A3A3DT DESC) AS Number
        FROM
            AUTO.YSACHAPOR.YDA3REP YDA3REP
     )              
        SELECT 
            YDAUREP.AUD5CD,
            YDAUREP.AUQCON
        FROM maxFornecedor F
        join AUTO.YSACHAPOR.YDAUREP YDAUREP
        ON F.A3ARCD = YDAUREP.AUARCD
        AND F.A3D5CD = YDAUREP.AUD5CD
        WHERE F.Number = 1 AND YDAUREP.AUD5CD LIKE ''M%'' 
        AND YDAUREP.AUD5CD NOT LIKE ''%P%'' 
        AND YDAUREP.AUA0NB > 1 
        AND YDAUREP.AUG6ST=''O''                
')

Я попытался добавить еще одно предложение with 2-го числазапрос на второй выбор, но он не работает

1 Ответ

0 голосов
/ 22 мая 2019

Чтобы добавить другую таблицу CTE, используйте этот синтаксис:

with TableA 
AS (SELECT 1 AS [ColumnA])
, TableB 
AS (SELECT 2 AS [ColumnB])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...