Разные результаты в одном и том же запросе
Модераторы: m0p3e, edward_K, Модераторы
Разные результаты в одном и том же запросе
Здравствуйте!
Такая вот штука обнаружилась. Сделал я SQL запрос для составления акта инвентаризации расходов будущих периодов. Запрос получился не сложный в общем-то:
Select
KatOS.NameOS (Length=50, FieldTitle='Наименование' ),
KatOs.InNum (Length=20, FieldTitle='Код' ),
KatOs.DatOk (Length=20, FieldTitle='Дата возникновения расходов'),
SpKatOS.SrokIsp(Length=20, FieldTitle='Срок погашения расходов'),
SpKatOS.IspCur (Length=20, FieldTitle='Кол-во мес использования'),
SpKatOS.Stoim (Length=20, FieldTitle='Первоначальная сумма расходов БП'),
SpKatOS.SIznM (Length=20, FieldTitle='Сумма износа за месяц'),
SpKatOS.SumIzn (Length=20, FieldTitle='Расчетная сумма к списанию'),
SpKatOS.Stoim-SpKatOS.SumIzn (Length=20, FieldTitle='Остаток расходов на начало инв-ии')
Where
(( 16 /== KatOS.tidk
and KatOS.nRec /== SpKatOS.ckatos
and spkatos.cnastros /== nastros.nrec
))
and (nastros.name='Бухгалтерский');
И он выдает правильные данные. А потом этот запрос оформил в ARD - все то же, только через CreateView и потом так:
.{Table 'MyView.KatOS'
.{Table 'MyView.SpKatOS'
[Поля]
.}
.}
И данные в этом случае по полям
SpKatOS.SrokIsp
MyView.SpKatOS.SumIzn (особенно здесь!)
получаю другие - не координально другие, но и на погрешности округления это списать как-то тяжело - довольно большое расхождение. ARD причем сделан НЕ в Excel, а обычный frm (в ARD-Excel кстати, та же беда). Все вещественные поля сделаны в формате &&&&.&&
Из-за чего такой косяк произошел, не подскажете?
Такая вот штука обнаружилась. Сделал я SQL запрос для составления акта инвентаризации расходов будущих периодов. Запрос получился не сложный в общем-то:
Select
KatOS.NameOS (Length=50, FieldTitle='Наименование' ),
KatOs.InNum (Length=20, FieldTitle='Код' ),
KatOs.DatOk (Length=20, FieldTitle='Дата возникновения расходов'),
SpKatOS.SrokIsp(Length=20, FieldTitle='Срок погашения расходов'),
SpKatOS.IspCur (Length=20, FieldTitle='Кол-во мес использования'),
SpKatOS.Stoim (Length=20, FieldTitle='Первоначальная сумма расходов БП'),
SpKatOS.SIznM (Length=20, FieldTitle='Сумма износа за месяц'),
SpKatOS.SumIzn (Length=20, FieldTitle='Расчетная сумма к списанию'),
SpKatOS.Stoim-SpKatOS.SumIzn (Length=20, FieldTitle='Остаток расходов на начало инв-ии')
Where
(( 16 /== KatOS.tidk
and KatOS.nRec /== SpKatOS.ckatos
and spkatos.cnastros /== nastros.nrec
))
and (nastros.name='Бухгалтерский');
И он выдает правильные данные. А потом этот запрос оформил в ARD - все то же, только через CreateView и потом так:
.{Table 'MyView.KatOS'
.{Table 'MyView.SpKatOS'
[Поля]
.}
.}
И данные в этом случае по полям
SpKatOS.SrokIsp
MyView.SpKatOS.SumIzn (особенно здесь!)
получаю другие - не координально другие, но и на погрешности округления это списать как-то тяжело - довольно большое расхождение. ARD причем сделан НЕ в Excel, а обычный frm (в ARD-Excel кстати, та же беда). Все вещественные поля сделаны в формате &&&&.&&
Из-за чего такой косяк произошел, не подскажете?
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Разные результаты в одном и том же запросе
насчет расхождений не скажу - хоть цифири бы привели по карточно - но селект написан неправильно.
гораздо лучше и надежней и быстрее на порядок еcли бы написали так
Where
(( 16 == KatOS.tidk
and 16 == nastros.tidk
and 'Бухгалтерский' == nastros.name
and KatOS.nRec /== SpKatOS.ckatos
and nastros.nrec==spkatos.cnastros
))
;
мне не совсем понятно, зачем вы указываете length для всех полей - для полей word и double это вообще не логично. Для строковых имеет смысл при выгрузке в дбф,но не здесь.
FieldTitle в ard отчете тоже не знаю как использовать.
гораздо лучше и надежней и быстрее на порядок еcли бы написали так
Where
(( 16 == KatOS.tidk
and 16 == nastros.tidk
and 'Бухгалтерский' == nastros.name
and KatOS.nRec /== SpKatOS.ckatos
and nastros.nrec==spkatos.cnastros
))
;
мне не совсем понятно, зачем вы указываете length для всех полей - для полей word и double это вообще не логично. Для строковых имеет смысл при выгрузке в дбф,но не здесь.
FieldTitle в ard отчете тоже не знаю как использовать.
Re: Разные результаты в одном и том же запросе
Ок, по порядку:
Цифири таковы:
SQL (SpKatOS.SumIzn): - так верно
175290.03
3281.49
1042639.14
2402945.53
2458048.83
53836.05
ARD (SpKatOS.SumIzn):
185030.15
3387.58
1100574.10
2536466.85
2594632.01
56827.49
Length и FieldTitle использовались конечно же только в SQL, а про Length для double - признаю, ступил .`)
С применением Вашего Where в ARD от все равно попадают неверные данные, и конечно, стало работать быстрее:
Цифири таковы:
SQL (SpKatOS.SumIzn): - так верно
175290.03
3281.49
1042639.14
2402945.53
2458048.83
53836.05
ARD (SpKatOS.SumIzn):
185030.15
3387.58
1100574.10
2536466.85
2594632.01
56827.49
Length и FieldTitle использовались конечно же только в SQL, а про Length для double - признаю, ступил .`)
С применением Вашего Where в ARD от все равно попадают неверные данные, и конечно, стало работать быстрее:
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Разные результаты в одном и том же запросе
что то все таки неправильно в вашем ард.
а по Ctrl+F4 в Гале не пробовали сравнить?
что реально то по конкретной записи?
бывают впринципе троблы при сортировках при наличии вычисляемых полей.
а по Ctrl+F4 в Гале не пробовали сравнить?
что реально то по конкретной записи?
бывают впринципе троблы при сортировках при наличии вычисляемых полей.
Re: Разные результаты в одном и том же запросе
Nick, попробуй getfirst в АРД ввести...по SpKatOS... автоматом не понимает...
Re: Разные результаты в одном и том же запросе
В общем, сегодня взял и снова перекомпилил последний вариант отчета в slk и, о чудо - все встало на свои места (данные в столбце выровнялись) причем, ничего я не менял - как объяснить этот феномен - не знаю. Видимо - это глюк.
По F4, кстати, текст ARD в Галактике не дает посмотреть почему-то, а обычных отчетов текст - пожалуйста. Forms.FCenv=On. Вроде как это единственная настройка, которая отвечает за возможность просмотра/компиляции исходного текста форм в Галактике.
"...Nick, попробуй getfirst в АРД ввести...по SpKatOS... автоматом не понимает...". Я чего-то не понял мысли/связи - если не трудно - разжуйте пожалуйста.
И остался вопрос такой - как правильно выглядит роль NastrOs в Галактике? За что она отвечает - за выбор метода учета/разреза (бухгалтерский, налоговый) через который смотрим на ОС/НМА? В общем, почему без нее не обойтись?
Всем спасибо за помощь
По F4, кстати, текст ARD в Галактике не дает посмотреть почему-то, а обычных отчетов текст - пожалуйста. Forms.FCenv=On. Вроде как это единственная настройка, которая отвечает за возможность просмотра/компиляции исходного текста форм в Галактике.
"...Nick, попробуй getfirst в АРД ввести...по SpKatOS... автоматом не понимает...". Я чего-то не понял мысли/связи - если не трудно - разжуйте пожалуйста.
И остался вопрос такой - как правильно выглядит роль NastrOs в Галактике? За что она отвечает - за выбор метода учета/разреза (бухгалтерский, налоговый) через который смотрим на ОС/НМА? В общем, почему без нее не обойтись?
Всем спасибо за помощь
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
Re: Разные результаты в одном и том же запросе
потому как в таблах spkatos,spmove,spmoveos,arciznos данные живут по несколько записей на одну карточку.
и тебе нужно отобрать какие же относяться к твоему методу.
+ настройки каждого метода, хозоперация амортизации например по умолчанию.
и тебе нужно отобрать какие же относяться к твоему методу.
+ настройки каждого метода, хозоперация амортизации например по умолчанию.
-
- Местный житель
- Сообщения: 783
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: Разные результаты в одном и том же запросе
>> как правильно выглядит роль NastrOs в Галактике?
NastrOS - это список методов учета инв. объектов ОС/НМА в Галактике.
Записи в NastrOS с TiDk = 15 - список методов учета ОС
Записи в NastrOS с TiDk = 16 - список методов учета НМА
NastrOS - это список методов учета инв. объектов ОС/НМА в Галактике.
Записи в NastrOS с TiDk = 15 - список методов учета ОС
Записи в NastrOS с TiDk = 16 - список методов учета НМА
Re: Разные результаты в одном и том же запросе
Спасибо за разъяснения