2016-01-20 2 views
1

Я пытаюсь выполнить инструкцию SQL для случая выбора. «Когда» имеет конвертер для даты. Это бросает ошибки. Что мне не хватает?Выберите дату конвертирования даты

SELECT DISTINCT 
    'detail', n.UserName, n.StatusCodeDesc, 
    CASE 
     WHEN n.enddate IS NULL AND (n.statuscode = 'L' or n.statuscode = 'P') 
     THEN (CONVERT(VARCHAR(10), getdate(), 101) AS [MM/DD/YYYY]) 
     ELSE (CONVERT(VARCHAR(10), n.EndDate, 101) AS [MM/DD/YYYY]) 
    END, 
    n.TC_OBT_STAT 
FROM 
    tbl_ActNightlyFeed n 
INNER JOIN 
    Tbl_ActExistingFeed g ON n.Empid = g.Empid 
+1

Не могли бы вы сообщить мне, что такое ошибка? –

ответ

4

псевдоним столбца должен появиться только после того, как в конце выражения дела, как это:

SELECT DISTINCT 
    'detail', 
    n.UserName, 
    n.StatusCodeDesc, 
    CASE 
    WHEN n.enddate IS NULL AND (n.statuscode = 'L' OR n.statuscode = 'P') 
    THEN CONVERT(VARCHAR(10), getdate(), 101) 
    ELSE CONVERT(VARCHAR(10), n.EndDate, 101) 
    END AS [MM/DD/YYYY], 
    n.TC_OBT_STAT 
FROM tbl_ActNightlyFeed n 
JOIN Tbl_ActExistingFeed g ON n.Empid = g.Empid 
0

Вы не выбирая g таблицу на всех. Я хотел бы предложить писать это как:

SELECT 'detail', n.UserName, n.StatusCodeDesc, 
     (CASE WHEN n.enddate IS NULL AND n.statuscode IN ('L', 'P') 
      THEN CONVERT(VARCHAR(10), getdate(), 101) 
      ELSE CONVERT(VARCHAR(10), n.EndDate, 101) 
     END) AS [MM/DD/YYYY], 
     n.TC_OBT_STAT 
FROM tbl_ActNightlyFeed n 
WHERE EXISTS (SELECT 1 
       FROM Tbl_ActExistingFeed g 
       WHERE n.Empid = g.Empid 
      ); 

Если ночной столик подачи может привести к дублей, вы все равно нужно select distinct. Я предполагаю, что таблица не будет иметь дубликатов.

Смежные вопросы