Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Различный результат выполнения SQL оператора...помогите кто знает!
|
|||
|---|---|---|---|
|
#18+
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 (автоинкремент). Кто знает, что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 11:36 |
|
||
|
Различный результат выполнения SQL оператора...помогите кто знает!
|
|||
|---|---|---|---|
|
#18+
Профессор Кто знает, что не так? Возможно, вот это: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2009, 21:06 |
|
||
|
Различный результат выполнения SQL оператора...помогите кто знает!
|
|||
|---|---|---|---|
|
#18+
Я бы изменил ваш 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2009, 04:51 |
|
||
|
Различный результат выполнения SQL оператора...помогите кто знает!
|
|||
|---|---|---|---|
|
#18+
Я бы изменил ваш 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2009, 04:52 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=36231240&tid=1603066]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 300ms |

| 0 / 0 |
