Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 PIVOT не возвращает NULL при отсутствии данных  [new]
мАздоимец
Member

Откуда:
Сообщений: 31
Доброе время суток, уважаемые!

Вот столкнулся с проблемой: ета конструкция не возвращает NULL при отсутствии данных, удовлетворяющих WHERE (а надо позарез!!). т.е. возвращает пустой тэйбл
SELECT [1], [2] FROM
(SELECT TagValueTag, TagValueValue FROM TagValues WHERE (YEAR(TagValueTime)=YEAR('20120909 08:00')) AND (TagValueTime<='20120909 20:00')) as s
PIVOT 
(AVG(TagValueValue) for TagValueTag in ([1], [2])) as pv


а ета возвращает тэйбл с NULLами
SELECT
  AVG(CASE TagValueTag WHEN 1 THEN TagValueValue ELSE NULL END) AS [1],
  AVG(CASE TagValueTag WHEN 2 THEN TagValueValue ELSE NULL END) AS [2]
FROM (
  SELECT TagValueTag, TagValueValue FROM TagValues WHERE (YEAR(TagValueTime)=YEAR('20120909 08:00')) AND (TagValueTime<='20120909 20:00')) AS C

Хотя по всем документациям первое - всего лишь оболочка для второго...
Подскажите, плиз, как мне выкрутиться (т.е. пивотом получить тэйбл с NULLами. Заранее спс! )
30 окт 12, 12:08    [13395611]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить