powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Различный результат выполнения SQL оператора...помогите кто знает!
5 сообщений из 5, страница 1 из 1
Различный результат выполнения SQL оператора...помогите кто знает!
    #36229133
Профессор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBM DB2 express-c.

Вот такой SQL оператор:

INSERT INTO HISTORY(DATA, AMOUNT, SUMMA)
SELECT dan.Data, Amount, Summa / USDbnk AS Summa FROM DAN INNER JOIN KURS ON DAN.Data = KURS.Data
WHERE (DAN.Data between data1 and data2) and (KodB = KodB) and (KodS = KodS) and USDbnk > 0;
UNION ALL
SELECT DATE('1900-01-01'), SUM(Amount), SUM(Summa / USDbnk) FROM DAN INNER JOIN KURS ON DAN.Data = KURS.Data
WHERE (DAN.Data between data1 and data2) and (KodB = KodB) and (KodS = KodS) and USDbnk > 0;

Результат исполнения у него различный.
Из окна редактора команд - вставка НУЖНОГО количества записей...все ОК.

А в хранимой процедуре происходит следующее: вставка НЕКОТОРОГО количества записей.
И количество вставляемых записей получается такое: каждая запись из интервала между data1 b data2 размножается на колво дней в интервале.
Если, скажем в интервале 30 дней, то количество записей будет 30*30 + 1.
Одну запись дает нижняя часть зпароса - после UNION ALL.
Удивительно то что вот эта 1 запись не размножается.
При этом столбец data в своем подмножестве содержит одинаковое значение а столбцы amount и summa различные значения.

Примерно так:

01.01.2009 23 2900
01.01.2009 15 1900
01.01.2009 10 1560
01.01.2009 11 1230

когда исполняется в редакторе - все правильно вставляется только одна запись
01.01.2009 23 2900

В таблице HISTORY есть еще столбец идентификации - ID (автоинкремент).
Кто знает, что не так?
...
Рейтинг: 0 / 0
Различный результат выполнения SQL оператора...помогите кто знает!
    #36230439
mustaccio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Профессор
Кто знает, что не так?

Возможно, вот это:
Код: plaintext
and (KodB = KodB) and (KodS = KodS)
...
Рейтинг: 0 / 0
Различный результат выполнения SQL оператора...помогите кто знает!
    #36231239
Lkhiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы изменил ваш SQL code на следующий:

авторINSERT INTO HISTORY(DATA, AMOUNT, SUMMA)
select ii.DATA, sum(ii.AMOUNT), sum(ii.SUMMA)
From (
SELECT dan.Data, Amount, Summa / USDbnk AS Summa
FROM DAN INNER JOIN KURS ON DAN.Data = KURS.Data
WHERE (DAN.Data between data1 and data2) and (DAN.KodB = KURS.KodB) and (DAN.KodS = KURS.KodS) and USDbnk > 0;
UNION ALL
SELECT DATE('1900-01-01') DATA, SUM(Amount) AMOUNT, SUM(Summa / USDbnk) SUMMA
FROM DAN INNER JOIN KURS ON DAN.Data = KURS.Data
WHERE (DAN.Data between data1 and data2) and (DAN.KodB = KURS.KodB) and (DAN.KodS = KURS.KodS) and USDbnk > 0 ) ii
Group By ii.DATA;

Lenny Khiger, ADSPA&VP.
...
Рейтинг: 0 / 0
Различный результат выполнения SQL оператора...помогите кто знает!
    #36231240
Lkhiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы изменил ваш SQL code на следующий:

авторINSERT INTO HISTORY(DATA, AMOUNT, SUMMA)
select ii.DATA, sum(ii.AMOUNT), sum(ii.SUMMA)
From (
SELECT dan.Data, Amount, Summa / USDbnk AS Summa
FROM DAN INNER JOIN KURS ON DAN.Data = KURS.Data
WHERE (DAN.Data between data1 and data2) and (DAN.KodB = KURS.KodB) and (DAN.KodS = KURS.KodS) and USDbnk > 0;
UNION ALL
SELECT DATE('1900-01-01') DATA, SUM(Amount) AMOUNT, SUM(Summa / USDbnk) SUMMA
FROM DAN INNER JOIN KURS ON DAN.Data = KURS.Data
WHERE (DAN.Data between data1 and data2) and (DAN.KodB = KURS.KodB) and (DAN.KodS = KURS.KodS) and USDbnk > 0 ) ii
Group By ii.DATA;

Lenny Khiger, ADSPA&VP.
...
Рейтинг: 0 / 0
Различный результат выполнения SQL оператора...помогите кто знает!
    #36232373
Профессор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mustaccioВозможно, вот это:
Код: plaintext
and (KodB = KodB) and (KodS = KodS)

Именно это и есть - проблема!

Разобрался что к чему. Спасибо всем, кто откликнулся.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Различный результат выполнения SQL оператора...помогите кто знает!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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