Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Деление на 1 (число прочтений - 5517 )
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
Re: Деление на 1
Ответ #15 - 01. Сентября 2009 :: 09:07
Печать  
JohnyDeath писал(а) 01. Сентября 2009 :: 08:57:
Перед выполнением своего запроса делал как в http://www.1cpp.ru/forum/YaBB.pl?num=1225325046/all#32 и ничего не помогло?
А с группировкой что показывает?


ТекстЗапроса="
   |SELECT
   |$Рег.Товар as Товар,
   //|$Рег.ОстатокТовара,
   |SUM($Рег.ОстатокТовара)/1 AS [остаток $число]
   |FROM
   |   $РегистрИтоги.ОстаткиТоваров as Рег
   |WHERE
   |   Рег.Period = :НачалоМесяца~~ AND $Рег.Склад = :Склад
   |ORDER BY Товар
   |GROUP BY Товар
   |";
не помогает  даже так.
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Деление на 1
Ответ #16 - 01. Сентября 2009 :: 09:24
Печать  
может там неявное преобразования типа данных. Т.е. так, например, SUM($Рег.ОстатокТовара) драйвер(или че там у фокспро) использует тип данных поля, а так SUM($Рег.ОстатокТовара)/1 преобразует к int(?). Так не пробовал написать?
SUM($Рег.ОстатокТовара)/1.0
  
Наверх
 
IP записан
 
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
Re: Деление на 1
Ответ #17 - 01. Сентября 2009 :: 09:27
Печать  
alexdd писал(а) 01. Сентября 2009 :: 09:24:
может там неявное преобразования типа данных. Т.е. так, например, SUM($Рег.ОстатокТовара) драйвер(или че там у фокспро) использует тип данных поля, а так SUM($Рег.ОстатокТовара)/1 преобразует к int(?). Так не пробовал написать?
SUM($Рег.ОстатокТовара)/1.0


не ребят не катит и /1.00000 Тоже
  
Наверх
 
IP записан
 
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
Re: Деление на 1
Ответ #18 - 01. Сентября 2009 :: 09:30
Печать  
думаю что 1 не имет вообще размерности
пробовал
....1000/(1000*1)
  
Наверх
 
IP записан
 
alexdd
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 347
Зарегистрирован: 25. Июня 2007
Re: Деление на 1
Ответ #19 - 01. Сентября 2009 :: 09:45
Печать  
фз..может поставить какое-то визуальное средство. Типа тот же FoxPro, например. Попробовать там погонять запросы.
Это на всех таблицах dbf такое происходит? Или только на одной и при $Рег.ОстатокТовара>1000?
  
Наверх
 
IP записан
 
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
Re: Деление на 1
Ответ #20 - 01. Сентября 2009 :: 09:57
Печать  
alexdd писал(а) 01. Сентября 2009 :: 09:45:
фз..может поставить какое-то визуальное средство. Типа тот же FoxPro, например. Попробовать там погонять запросы.
Это на всех таблицах dbf такое происходит? Или только на одной и при $Рег.ОстатокТовара>1000?


это просиходт для всех записей больше 1000 пока только для одной таблице отсатков , для отсальных не смотрел.
  
Наверх
 
IP записан
 
yhvvh
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 29
Зарегистрирован: 01. Сентября 2009
Re: Деление на 1
Ответ #21 - 01. Сентября 2009 :: 09:59
Печать  
ладно может кому ветка пригодится, я пока iif обошолся прежде чем делить на 1 проверяю на что делю.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Деление на 1
Ответ #22 - 01. Сентября 2009 :: 11:31
Печать  
yhvvh писал(а) 01. Сентября 2009 :: 08:00:
давайте не будем ля ля
задача описана в ветки на мисте
деление на 1 может всегда произойти
в моем конкретном случае (а их может быть миллион)
делю на кофф. ед. изм а он может быть равен 1 согласись?

и во первых что значит пробегись ?
если данные можно а точнее нужно вытянуть с помощью внутренних запросов будет гораздо эффективней чем делать это на клиенте и гораздо быстрей.

во вторых , что за провайдер такой который не может обеспечит правельное деление на 1?

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

вообщем прихожу к выводу что грабли в кривой или компоненте 1спп или провадера.

и скорей всего это относиться только к дбф

В subj ( и на Мисте ) ты делишь на 1 а не на ед измерения.
Что вижу то и читаю. Кроме случая деления на 1 не забудь про деление на 0.
Приведи запрос полностью на мой взгляд для результирующей таблицы надо задавать описания числовых полей до выполнения запроса.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Деление на 1
Ответ #23 - 01. Сентября 2009 :: 11:34
Печать  
Нет, тут косяк скорее всего в провайдере, т.к. выдается не просто обрезанное число, а предыдущее.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Деление на 1
Ответ #24 - 01. Сентября 2009 :: 11:43
Печать  
JohnyDeath писал(а) 01. Сентября 2009 :: 11:34:
Нет, тут косяк скорее всего в провайдере, т.к. выдается не просто обрезанное число, а предыдущее.

а если sqlite ?
также надо наверное явное преобразование типов ставить.
  
Наверх
 
IP записан
 
kiruha
1c++ power user
Отсутствует



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Деление на 1
Ответ #25 - 01. Сентября 2009 :: 11:56
Печать  
ТекстЗапроса="
   SELECT
    $Рег.Товар as Товар,
    $Рег.ОстатокТовара,
    Cast($Рег.ОстатокТовара/000000000001.00 AS Numeric(15,2))  AS остаток
   FROM
       $РегистрИтоги.ОстаткиТоваров as Рег
   WHERE
       Рег.Period = :НачалоМесяца~~ AND $Рег.Склад = :Склад
   ORDER BY Товар
   ";

Дело в том , что fox выражения форматирует по первому результату столбца

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



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Деление на 1
Ответ #26 - 01. Сентября 2009 :: 12:07
Печать  
имхо можно и так
Cast($Рег.Количество/1 AS Numeric(15,2))
главное, как правильно замечено, явно типизировать результат
  

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



Сообщений: 1249
Зарегистрирован: 11. Апреля 2007
Re: Деление на 1
Ответ #27 - 02. Сентября 2009 :: 06:55
Печать  
Так вопрос автору - все ОК или как ?  Улыбка
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Деление на 1
Ответ #28 - 04. Сентября 2009 :: 05:58
Печать  
Отвечу за автора - работает.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать