Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) 0 или 1 вместо boolen (число прочтений - 3592 )
orakool
Junior Member
**
Отсутствует



Сообщений: 30
Зарегистрирован: 01. Июня 2006
Пол: Мужской
0 или 1 вместо boolen
13. Сентября 2007 :: 14:06
Печать  
Код
Выбрать все
SELECT
	Спр.ID as [Цена $Справочник.Цены],
	$Спр.Склад as [Склад $Справочник.Склады],
	$Спр.Цвет as [Цвет $Справочник.Цвета],
	$Спр.Размер as [Размер $Справочник.Размеры],
	NOT($Спр.Склад = $ПустойИД)+NOT($Спр.Цвет = $ПустойИД)+NOT($Спр.Размер = $ПустойИД) as Счетчик
FROM
	$Справочник.Цены as Спр (nolock)
WHERE
	Спр.ParentExt	   = :ВыбТовар AND
	$Спр.КатегорияЦены = :ВыбКатегория AND
	(($Спр.Склад   = :ВыбСклад)   OR ($Спр.Склад   = $ПустойИД)) AND
	(($Спр.Цвет    = :ВыбЦвет)    OR ($Спр.Цвет    = $ПустойИД)) AND
	(($Спр.Размер  = :ВыбРазмер)  OR ($Спр.Размер  = $ПустойИД))
 


Строка "NOT($Спр.Склад = $ПустойИД)+NOT($Спр.Цвет = $ПустойИД)+NOT($Спр.Размер = $ПустойИД)" неправильная, так как результатом логического выражения является boolean.
Как можно посчитать количество непустых значений Склад, Цвет и Размер ?
  
Наверх
ICQ  
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: 0 или 1 вместо boolen
Ответ #1 - 13. Сентября 2007 :: 14:11
Печать  
а count()
непоможет?
  
Наверх
 
IP записан
 
orakool
Junior Member
**
Отсутствует



Сообщений: 30
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: 0 или 1 вместо boolen
Ответ #2 - 13. Сентября 2007 :: 14:20
Печать  
http://msdn2.microsoft.com/ru-ru/library/28d39da6-bc2e-46c7-858c-b1721c938830.as...
не вижу как это можно использовать... Озадачен

P.S.: Наверное, я не точно выразился.
Как можно посчитать количество непустых значений Склад, Цвет и Размер в каждой строке ?
  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: 0 или 1 вместо boolen
Ответ #3 - 13. Сентября 2007 :: 21:49
Печать  
голь на выдумки хитра  Подмигивание

Код
Выбрать все
select sum(case when $Спр.Склад   = $ПустойИД then 0 else 1 end) as КолвоЗаполненныхСкладофф
from $Справочник.Цены
 


  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
orakool
Junior Member
**
Отсутствует



Сообщений: 30
Зарегистрирован: 01. Июня 2006
Пол: Мужской
Re: 0 или 1 вместо boolen
Ответ #4 - 14. Сентября 2007 :: 07:35
Печать  
Спасибо большое ! Работает  Улыбка
  
Наверх
ICQ  
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: 0 или 1 вместо boolen
Ответ #5 - 14. Сентября 2007 :: 09:55
Печать  
Цитата:
Функция COUNT (Transact-SQL)
COUNT ( { [ [ ALL | DISTINCT ] expression ] | * } )
Функция COUNT(ALL expression) оценивает expression для каждой строки в группе и возвращает количество значений, не равных NULL.

Код
Выбрать все
select COUNT( $Спр.Склад  ) as КолвоЗаполненныхСкладофф
from $Справочник.Цены 

  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: 0 или 1 вместо boolen
Ответ #6 - 14. Сентября 2007 :: 10:10
Печать  
Да, только не забудь исходную таблицу в подзапрос,
или должна быть группировка
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: 0 или 1 вместо boolen
Ответ #7 - 14. Сентября 2007 :: 10:14
Печать  
Кирилл, помни, что $ПустойИД  и NULL - это разные вещи.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: 0 или 1 вместо boolen
Ответ #8 - 14. Сентября 2007 :: 10:34
Печать  
Да, оплошал  Смущённый
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: 0 или 1 вместо boolen
Ответ #9 - 14. Сентября 2007 :: 12:32
Печать  
JohnyDeath писал(а) 14. Сентября 2007 :: 10:14:
Кирилл, помни, что $ПустойИД  и NULL - это разные вещи.

Класс
Код
Выбрать все
select COUNT(NULLIF($Спр.Склад,$ПустойИД)) as КолвоЗаполненныхСкладофф
from $Справочник.Цены
 

  
Наверх
ICQ  
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: 0 или 1 вместо boolen
Ответ #10 - 14. Сентября 2007 :: 12:51
Печать  
Улыбка
Давайте теперь напишем как выбрать кол-во НЕзаполненных складофф
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать