|
Табличные выражения
|
|||
---|---|---|---|
#18+
UPDATE COSTPFR SET POSTING = (WITH SUMPKVPFR AS (SELECT SUM(PKVPFR.MONEYKV) AS SUMKV FROM PLANKVPFR PKVPFR, RASH R1 WHERE PKVPFR.KODRASH = R1.KODRASH AND R1.KODEKR = (SELECT KODEKR FROM RASH WHERE KODRASH = 1) AND PKVPFR.KODPFR = 1 AND PKVPFR.KODKVART = 1 AND PKVPFR.ACTUAL >= 0 ), SUMCOST AS (SELECT SUM(C.MONEYC) AS SCKV FROM COSTPFR C, RASH R2 WHERE C.KODRASH = R2.KODRASH AND R2.KODEKR = (SELECT KODEKR FROM RASH WHERE KODRASH = 1) AND C.KODPFR = 1 AND QUARTER(C.DATEOFORM) = 1) SELECT CASE WHEN SCKV IS NULL THEN CASE WHEN 100 <= SUMKV THEN 1 ELSE 0 END WHEN SCKV <= SUMKV THEN 1 ELSE 0 END as RESULT FROM SUMPKVPFR, SUMCOST) WHERE ... Если схематично, то в данном запросе создаются 2 локальные временные таблицы, причем без оператора update результат выдается без проблем, а вот если добавить UPDATE COSTPFR SET POSTING = , то запрос не работает. В чем моя ошибка ? DB2 8.2 ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2005, 03:57 |
|
Табличные выражения
|
|||
---|---|---|---|
#18+
Результат заключительного select скорее всего множество записей, а не одна запись. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2005, 05:27 |
|
Табличные выражения
|
|||
---|---|---|---|
#18+
Нет. Возвращается одно значение. Просто у меня такое подозрение, что либо тут надо применить другой синтаксис, либо подобные операции не поддерживаются ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2005, 07:08 |
|
Табличные выражения
|
|||
---|---|---|---|
#18+
JNAНет. Возвращается одно значение. Просто у меня такое подозрение, что либо тут надо применить другой синтаксис, либо подобные операции не поддерживаются Попробуй вынести во view ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2005, 14:12 |
|
Табличные выражения
|
|||
---|---|---|---|
#18+
Попробуй перефразировть запрос. Если кратко и по сути, то: Код: plaintext 1. 2.
Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2005, 18:00 |
|
Табличные выражения
|
|||
---|---|---|---|
#18+
Если я не ошиблась, то итоговый селект SELECT CASE WHEN SCKV IS NULL THEN CASE WHEN 100 <= SUMKV THEN 1 ELSE 0 END WHEN SCKV <= SUMKV THEN 1 ELSE 0 END as RESULT FROM SUMPKVPFR, SUMCOST ? Если да, то можно попробовать SELECT min( CASE WHEN SCKV IS NULL THEN CASE WHEN 100 <= SUMKV THEN 1 ELSE 0 END WHEN SCKV <= SUMKV THEN 1 ELSE 0 END as RESULT FROM SUMPKVPFR, SUMCOST ) Чтобы таки на этапе компиляции запроса было ясно, что это одна запись. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2005, 21:03 |
|
Табличные выражения
|
|||
---|---|---|---|
#18+
Спасибо, за ответы Последний вариант не работает, т.е. SELECT min( CASE ... Пришлось действительно перефразировать запрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2005, 08:51 |
|
Табличные выражения
|
|||
---|---|---|---|
#18+
IMHO все дело в конструкции выражения Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2005, 09:14 |
|
|
start [/forum/topic.php?fid=43&msg=32897827&tid=1606012]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
75ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 445ms |
0 / 0 |