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

Откуда: Кемерово
Сообщений: 1055
Есть запрос
	SELECT НомерСклада, ВидТовара, SUM(Ост)
	FROM #Движ	
	WHERE Ост<>0
	GROUP BY НомерСклада, ВидТовара
который выводит вот такой результат
123
12625681700
17225498.00
11349140.00
14221950.00
Т.е. с нулевыми значениями, хотя я указал таковые исключить. Подскажите в чем причина?
9 ноя 09, 10:28    [7900038]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
Supra93
Member

Откуда:
Сообщений: 8174
smoyk
Есть запрос SELECT НомерСклада, ВидТовара, SUM(Ост)
FROM #Движ
WHERE Ост<>0
GROUP BY НомерСклада, ВидТовара
9 ноя 09, 10:30    [7900050]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
letefon
Member

Откуда:
Сообщений: 128
smoyk
Есть запрос
	SELECT НомерСклада, ВидТовара, SUM(Ост)
	FROM #Движ	
	GROUP BY НомерСклада, ВидТовара
	HAVING SUM(Ост) <> 0
9 ноя 09, 10:32    [7900061]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
baracs
Member

Откуда: Москва
Сообщений: 7198
smoyk,

В Ост отрицательные значения есть?
9 ноя 09, 10:32    [7900063]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62917
smoyk
Есть запрос
	SELECT НомерСклада, ВидТовара, SUM(Ост)
	FROM #Движ	
	WHERE Ост<>0
	GROUP BY НомерСклада, ВидТовара
который выводит вот такой результат
123
12625681700
17225498.00
11349140.00
14221950.00
Т.е. с нулевыми значениями, хотя я указал таковые исключить. Подскажите в чем причина?

Возможно это 0,00 далеко не ноль, смотря какой тип поля
9 ноя 09, 11:08    [7900277]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Anatoly Podgoretsky
smoyk
Есть запрос
	SELECT НомерСклада, ВидТовара, SUM(Ост)
	FROM #Движ	
	WHERE Ост<>0
	GROUP BY НомерСклада, ВидТовара
который выводит вот такой результат
123
12625681700
17225498.00
11349140.00
14221950.00
Т.е. с нулевыми значениями, хотя я указал таковые исключить. Подскажите в чем причина?

Возможно это 0,00 далеко не ноль, смотря какой тип поля
+1000
Microsoft остроумно по-умолчанию показывает два разряда после десятичной точки у типа MONEY, хотя в расчётах и сравнениях использует 4.
Хотя, может, это поведение соответствует стандарту?
9 ноя 09, 11:15    [7900317]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62917
Если речь про подказку, то не знаю, но если про сравнение, то для сравнения чисел с плавающей запятой нельзя делать точное сравнение, сравнивать надо с эпсилоном, в данном случае эпсилоно можно взять 0,01, только надо быть поосторожнее с расчетами, поскольку результаты могут не совпадать.
Ну и для варианта с MONEY нельзя опираться на представление.

--
http://www.podgoretsky.com
9 ноя 09, 11:21    [7900348]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
smoyk
Member

Откуда: Кемерово
Сообщений: 1055
baracs,

Да, отрицательные есть. Но нулевых значений слишком много.

leteform,

С хевинг действительно нулевые исключаются, но меня интересовал именно мой вариант запроса.

iap, Anatoly Podgoretsky,

Тип поля действительно money. А как сделать тогда, чтобы выводил все 4 знака? Round(sum(ост),4) не работает.
9 ноя 09, 11:58    [7900589]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62917
Это зависит от клиента, многие действительно выводят только два знака.

--
http://www.podgoretsky.com
9 ноя 09, 12:00    [7900607]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
Glory
Member

Откуда:
Сообщений: 104760
smoyk

С хевинг действительно нулевые исключаются, но меня интересовал именно мой вариант запроса.

Вы тогда определитесь с задачей - то ли вы фильтруете входной набор до агрегирования, то ли результат после агрегирования.
9 ноя 09, 12:01    [7900614]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
smoyk
Member

Откуда: Кемерово
Сообщений: 1055
Anatoly Podgoretsky,

Клиент Microsoft SQL Server Management Studio 9.00.3042.00. Т.е. нет возможности вывести все знаки? В поле то хранятся 4... Зря хранятся чтоли)
9 ноя 09, 12:06    [7900655]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62917
Кстати, а SUM(Ост), какого типа, случайно не Float ли?, может стоит указать тип явно, чтобы увидеть нормальный, кроме того в таблице не Ocт, а SUM - а это не связаные явно вещи, что пот твоему будет при сложение двух значений, например 10 и минус 10, случайно не 0 ли будет.


Проверь другим запросом, без группирования, например для WHERE НомерСклада=113 and ВидТовара=4914


--
http://www.podgoretsky.com
9 ноя 09, 12:08    [7900668]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62917
smoyk

С хевинг действительно нулевые исключаются, но меня интересовал именно мой вариант запроса.

iap, Anatoly Podgoretsky,

Тип поля действительно money. А как сделать тогда, чтобы выводил все 4 знака? Round(sum(ост),4) не работает.

Твой вариант работать не будет и having это доказывает.
9 ноя 09, 12:11    [7900693]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
smoyk
iap, Anatoly Podgoretsky,

Тип поля действительно money. А как сделать тогда, чтобы выводил все 4 знака? Round(sum(ост),4) не работает.
Преобразовать к типу DEC(19,4)
CAST(SUM(Ост) AS DEC(19,4))
9 ноя 09, 12:14    [7900724]     Ответить | Цитировать Сообщить модератору
 Re: исключение нулевых строк  [new]
Anatoly Podgoretsky
Member

Откуда:
Сообщений: 62917
Да уже ясно, что у него неправильный запрос, он почему то ассоциирует SUM с Ост

--
http://www.podgoretsky.com
9 ноя 09, 12:27    [7900822]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить