2013-04-24 2 views
0

У меня есть SQL запрос что-то вдоль линий:отфильтровать строки, которые имеют вычисленное значение столбца нуль

SELECT CONVERT(varchar, DATEPART(month, titlStreaming)) + '/' + CONVERT(varchar, DATEPART(day, titlStreaming)) + '/' + CONVERT(varchar, DATEPART(year, titlStreaming)) AS [Day], 
COUNT(titlTitleID) AS Total 
FROM Title 
GROUP BY DATEPART(year, titlStreaming), DATEPART(month, titlStreaming), DATEPART(day, titlStreaming) 
ORDER BY DATEPART(year, titlStreaming) DESC, DATEPART(month, titlStreaming) DESC, DATEPART(day, titlStreaming) DESC 

Это обычно возвращает таблицу, как:

Day  | Total 
-------------------- 
4/23/2013 |  2 
     ... 
NULL  | 14234 

Что я хотел бы для этого нужно отфильтровать строку, возвращающую значение NULL. Потому что Day - вычисленный столбец, очевидно, я не могу просто сделать WHERE Day IS NOT NULL. Я признаю, что мои знания SQL в этом нет, поэтому любая помощь или предложения будут оценены.

+0

Привет, Натан, если вы получите ответ, который исправит вашу проблему, не забудьте проверить его. Нам нравится помогать, но нам также нравятся точки репутации :) – PowerUser

+0

Да, просто нужно ждать на этом 10-минутном временном ограничении :) –

ответ

1

, насколько все dateparts зависят от titlStreaming а, где условие titlStreaming должно быть достаточно.

.... 
From Title 
where titlStreaming is not null 
Group by .... 
+0

Ничего себе. Теперь я чувствую себя глупым. Это невероятно просто и прекрасно работает. –

1

Вы можете использовать подзапрос:

select * 
from (SELECT CONVERT(varchar, DATEPART(month, titlStreaming)) + '/' + CONVERT(varchar, DATEPART(day, titlStreaming)) + '/' + CONVERT(varchar, DATEPART(year, titlStreaming)) AS [Day], 
      COUNT(titlTitleID) AS Total 
    FROM Title 
    GROUP BY DATEPART(year, titlStreaming), DATEPART(month, titlStreaming), DATEPART(day, titlStreaming) 
    ) t 
where [day] is not null 
ORDER BY [day] DESC 
+0

Это была моя первая мысль, однако, когда я добавляю 'HAVING [Day] IS NOT NULL' I get 'Недопустимое имя столбца« День ». –

+0

@NathanR. , , Первоначально я был запутан в базе данных. Подзапрос или решение bummi в порядке. –

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