Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Bug 9.0.2.2551 / 3 сообщений из 3, страница 1 из 1
09.02.2005, 15:55
    #32908546
L0cat0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bug 9.0.2.2551
Вот обнаружилось следующее :

alter procedure
TLSYS.bug_9022551(in ShowBug integer)
begin
declare local temporary table #CL(
row_id char(1) not null,
qty_row numeric(16,2) null,
row_key char(8) not null,
) on commit delete rows;
insert into #CL values( '1',3,'QWERTY') ;
insert into #CL values( '2',4,'ASDFGH') ;
insert into #CL values( '3',5,'QWERTY') ;
insert into #CL values( '4',3,'QWERTY') ;
insert into #CL values( '5',4,'ASDFGH') ;
insert into #CL values( '6',5,'QWERTY') ;
insert into #CL values( '7',3,'QWERTY') ;
insert into #CL values( '8',4,'ASDFGH') ;
insert into #CL values( '9',5,'QWERTY') ;
if ShowBug = 1 then
select row_key,qty_row from #CL union
select 'ZXCVBN',0 from dummy
else
select row_key,qty_row from #CL
end if
-- select sum(qty_row) from bug_9022551(0) = 36
-- select sum(qty_row) from bug_9022551(1) = 12
end;

т.е. если в результат выборки не идет уникальный идентификатор -
то при последующем UNION он просто сливает записи.

Удачи !
...
Рейтинг: 0 / 0
09.02.2005, 16:05
    #32908573
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bug 9.0.2.2551
Гм, читаем BOL про UNION:
BOLThe results of UNION are the same as UNION ALL, except that duplicate rows are eliminated. Eliminating duplicates requires extra processing, so UNION ALL should be used instead of UNION where possible. UNION DISTINCT is identical to UNION.
То есть четко сказано, что UNION=UNION DISTINCT, т.е. из результирующего набора данных будут удалены все дубликаты, у которых значения полей совпадают.

Вывод: бага нет, поставьте в процедуре UNION ALL и все заработает как нужно :)
...
Рейтинг: 0 / 0
09.02.2005, 16:27
    #32908636
L0cat0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Bug 9.0.2.2551
ASCRUSГм, читаем BOL про UNION:
BOLThe results of UNION are the same as UNION ALL, except that duplicate rows are eliminated. Eliminating duplicates requires extra processing, so UNION ALL should be used instead of UNION where possible. UNION DISTINCT is identical to UNION.
То есть четко сказано, что UNION=UNION DISTINCT, т.е. из результирующего набора данных будут удалены все дубликаты, у которых значения полей совпадают.

Вывод: бага нет, поставьте в процедуре UNION ALL и все заработает как нужно :)

Про себя : когда ничего не помагает - прочти наконец инструкцию,
если это не помогло - прочти ее внимательно !

Спасибо.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Bug 9.0.2.2551 / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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