ВЫБОР запросов с объединением и упорядочением в новую временную таблицу не работает

#sql-server #union #temp

#sql-server #объединение #temp

Вопрос:

Я написал запрос T-SQL для сбора некоторых данных из многих таблиц и разделения строк на три с помощью запросов объединения выбора. При выполнении запросов возникают ошибки. Я прикрепил запросы, пожалуйста, помогите мне исправить ошибки.

 SELECT * 
INTO #tmpFerdeen 
FROM 
    (SELECT
         (CASE WHEN sc <> '0000' THEN sln END) AS t, 
         (CASE WHEN sc <> '0000' THEN crid END) AS crrid, 
         CASE Header 
            WHEN 'H' THEN 1  
            WHEN 'S' THEN 2 
            WHEN 'T' THEN 3 
            ELSE 0 
         END O,
         CASE 
            WHEN sc <> '0000' THEN Header 
         END, 
         CASE 
            WHEN sc <> '0000' THEN Header '|' st   '|' convert(varchar,pid)   '|'   convert(varchar, cid)   '|'  convert(varchar,cenddate ) 
         END AS RestOfData
     FROM
         #tempsddd

     UNION ALL

     SELECT 
         sln t, crid crrid, 
         CASE Details 
            WHEN 'H' THEN 1  
            WHEN 'S' THEN 2 
            WHEN 'T' THEN 3 
            ELSE 0 
         END,
         Details, 
         Details   '|'   ISNULL(CONVERT(varchar, sln), '')   '|'   '|'   '|'   '|'
                   ISNULL(CONVERT(varchar, ah), '')   '|'
                   ISNULL(sfne, '')   '|' 
                   ISNULL(smne, '')   '|' 
                   ISNULL(slne, '')
   FROM
       #tempsddd

    UNION ALL

    SELECT
        (CASE WHEN sc <> '0000' THEN sln END) AS t, 
        (CASE WHEN sc <> '0000' THEN crid END) AS crrid, 
        CASE Footer 
           WHEN 'H' THEN 1  
           WHEN 'S' THEN 2 
           WHEN 'T' THEN 3 
           ELSE 0 
        END, 
        CASE WHEN sc <> '0000' THEN Footer END, 
        CASE WHEN sc <> '0000' THEN Footer   '|'   sc END
    FROM
        #tempsddd
    ORDER BY
        crrid, 
         CASE Header 
            WHEN 'H' THEN 1  
            WHEN 'S' THEN 2 
            WHEN 'T' THEN 3 
            ELSE 0 
         END) 
  

Пожалуйста, помогите мне сделать это.

Ответ №1:

Я думаю, что это синтаксис icorrect из-за инструкции «Order by», вы должны поместить order by вне скобок, и вы также используете case после order by, поэтому, пожалуйста, проверьте, правильно ли указано значение case

Комментарии:

1. Спасибо, чувак. Ты сделал мой день. Спасибо, теперь он работает