powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / sum в FP под DOS и SQL Server
12 сообщений из 37, страница 2 из 2
sum в FP под DOS и SQL Server
    #32806864
vl2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Igor Korolyov!

>>Пользоваться можно много чем :)
А я разве против. Согласен. :)

>>Но по мне так из фокса заметно проще и быстрее будет.
Тебе- может и да. Но вопрос то не ты задавал.

>> Конечно если опыта в фоксе 0, то лучше и не соваться.
У человека в FOXе не получается найти причину. Я предложил другой способ. Если он не помогает- предлагайте другой.

>> В некоторых случаях такой способ наиболее удобен.
>Именно что в некоторых.
А я и не говорил об универсальном методе.

>И добавляешь влияние Excel и IBExport или иной ...
А что мешает это сразу проверить? Сравнить итоговую сумму в Эхеле и сделать Select SUM(..) на сервере. Совпали- можно проверять дальше, нет- отказаться.
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32808618
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi vl2000!

> >>Но по мне так из фокса заметно проще и быстрее будет.
> Тебе- может и да. Но вопрос то не ты задавал.

Странная у тебя логика - т.е. если бы я спросил скажем в форуме по IB или
Excel как мне сравнить то-то и то-то, ты мне посоветовал бы воспользоваться
фоксом :)
Наверное сюда пишут люди знакомые именно с фоксом, и рассказывать им как это
можно сделать через IBExpert, которого у них к тому-же нету и вряд-ли когда
будет... IMHO что-то тут с логикой не в порядке :(

> У человека в FOXе не получается найти причину. Я предложил другой
> способ. Если он не помогает- предлагайте другой.

Может быть кое кто будет внимательно читать ВСЁ обсуждение?

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32809990
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тут выгрузила данные из таблицы SQL Server-а в dbf (dbase IV).
Посчитала сумму по этому полю в FPD, получилась такая же как и в SQL, потом посмотрела у каких записей значение поля не совпадает - оказалось, что у некоторых записей значение поля уменьшилось на 0,01. Поэтому общая сумма и не совпадает.
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32810222
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да будет так! Теперь выясняем причину, почему обрезались.

Предлагаю вариант: округление в одном случае и отбрасывание третьей цифры и далее после запятой в другом.
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32810250
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я поменяла тип поля в SQL Servere (увеличила разрядность - decimal (10,3)) и еще раз перенесла данные из FPD.

Получилось для таких записей

...,07 -> ...,069
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32810254
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UrriДа будет так! Теперь выясняем причину, почему обрезались.

Предлагаю вариант: округление в одном случае и отбрасывание третьей цифры и далее после запятой в другом.
Это где? Настройки драйвера VFP?
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32810340
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
coolkenga UrriДа будет так! Теперь выясняем причину, почему обрезались.

Предлагаю вариант: округление в одном случае и отбрасывание третьей цифры и далее после запятой в другом.
Это где? Настройки драйвера VFP?
Или в хранимке уже в SQL Server-e?
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32810465
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где точно, не могу сказать. Не знаю я SQL Server. Видимо, в нем самом.
Подозреваю, несмотря на то, что тип поля на SQL сервере прописан как (10,2), данные физически хранятся реально с большей точностью. И округляются только на экранчике...

...Так, посмотрел в bol, судя по разделу "decimal и numeric", так и есть.

Код: plaintext
1.
2.
3.
4.
5.
Precision  Storage bytes 
 1  -  9                 5  
 10 - 19                 9  
 20 - 28                13  
 29 - 38                17  
Прав был Игорь Королев.

Как бороться? Округлять принудительно там, где нужно.
Перед сохранением данных (?).
После всяких арифметических операций (?).
Перед тем, как выполнять арифметические операции (?).

Впрочем, не стоит гадать - можно спросить в форуме про SQL Server, как правильно работать с этим типом данных.
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32810490
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
UrriГде точно, не могу сказать. Не знаю я SQL Server. Видимо, в нем самом.
Подозреваю, несмотря на то, что тип поля на SQL сервере прописан как (10,2), данные физически хранятся реально с большей точностью. И округляются только на экранчике...

...Так, посмотрел в bol, судя по разделу "decimal и numeric", так и есть.

Код: plaintext
1.
2.
3.
4.
5.
Precision  Storage bytes 
 1  -  9                 5  
 10 - 19                 9  
 20 - 28                13  
 29 - 38                17  

Странно, откуда же берется эта точность. И почему не у всх записей...
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32810589
coolkenga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Закачала ту же таблицу DTS (драйвер MS Visual Foxpro) - все нормально с этими записями....
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32814902
Chuveljov Andrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне в голову одна идея пришла? А на каком процессоре считали результаты досовского фокса?

___________________
Всё вышеизложенное есть моё частное мнение и не претендует на полноту изложения.
...
Рейтинг: 0 / 0
sum в FP под DOS и SQL Server
    #32815504
golsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ошибки округления. Для внутренних вычислений Fox преобразует numeric в double. Чтобы убедиться выполни
select sum(round(field1*100)) from table1
получишь целое в 100 раз большее (короче в копейках) туже сумму что и в Орасле (в рублях). double не искажает целые числа!
...
Рейтинг: 0 / 0
12 сообщений из 37, страница 2 из 2
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / sum в FP под DOS и SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]