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

Откуда:
Сообщений: 265
Подскажите, как мне вывести так что бы запись была одна, сейчас у меня выводит если есть записи в форуме то выводит строку с количеством записей, а если записей 0, то все равно выводит, а я хочу сделать так что если записей в форуме не было что выводилось 0, а если есть записи то 0 не выводился
select count(ID) as CountID , PageID
	from Forum F
	where Status > 0 and PageID = @page and Theme <> 1 
	group by PageID
	having count(ID) > 0

	union all

	select 0 , @page
18 дек 16, 17:48    [20018248]     Ответить | Цитировать Сообщить модератору
 Re: union all  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21249
+
Если кто понял, растолкуйте, что он сказал...
18 дек 16, 18:45    [20018387]     Ответить | Цитировать Сообщить модератору
 Re: union all  [new]
Eleanor
Member

Откуда:
Сообщений: 3420
Похоже, хочет для указанного @page вывести ровно одну строку с количеством имеющихся записей.
select isnull(
		(
		select count(ID)
		from Forum F
		where Status > 0 and PageID = @page and Theme <> 1
		)
             ,0) as CountID
	 , @page as PageID
19 дек 16, 01:44    [20019561]     Ответить | Цитировать Сообщить модератору
 Re: union all  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21249
Pabl0
я хочу сделать так что если записей в форуме не было что выводилось 0, а если есть записи то 0 не выводился
Я воспринимаю это так:
IF cnt != 0 THEN count=cnt
            ELSE count=0
19 дек 16, 07:51    [20019664]     Ответить | Цитировать Сообщить модератору
 Re: union all  [new]
Нектотам
Guest
Pabl0,

Так?

SELECT isnull(F.CountID, 0) CountID, a.PageID PageID
FROM 
	(SELECT @page PageID) a
	OUTER APPLY 
	(SELECT count(ID) CountID 
	FROM Forum F
	WHERE F.Status > 0 and F.PageID = a.PageID and F.Theme <> 1) F
19 дек 16, 09:25    [20019939]     Ответить | Цитировать Сообщить модератору
 Re: union all  [new]
aleks2
Guest
select count(ID) as CountID , PageID
	from Forum F
	where Status > 0 and PageID = @page and Theme <> 1 
	group by PageID
	having count(ID) > 0

	union all

select 0 , @page where not exists(select *from Forum F where Status > 0 and PageID = @page and Theme <> 1 )


Но так - проще

select count(ID) as CountID, PageID = @page
	from Forum F
	where Status > 0 and PageID = @page and Theme <> 1 
19 дек 16, 15:29    [20022648]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить