|
|
|
Как сделать Update?
|
|||
|---|---|---|---|
|
#18+
Хочется сделать update вида: update t_operation op set op.comm_rate=bcc.comm_rate from t_bvd_commission_calc bcc where op.id=bcc.id т.е. заполнить значение колонки в одной таблице значениями из другой. На приведенный выще запрос, почти корректный для MS SQL Server, Oracle ругается. Вариант вида update t_operation op set op.comm_rate=(select bcc.comm_rate from t_bvd_commission_calc bcc where op.id=bcc.id) мне не нравится, так как на самом деле нужно обновить большее количество колонок. Как бы это сделать попроще и с наименьшей нагрузкой на сервер? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2003, 12:17 |
|
||
|
Как сделать Update?
|
|||
|---|---|---|---|
|
#18+
Если большее количество колонок, то зря не нравится. Пиши col1, col2, ... coln = (SELECT col1, col2, ..., coln ...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2003, 12:32 |
|
||
|
Как сделать Update?
|
|||
|---|---|---|---|
|
#18+
А как это сделать? Вот попробовал: update t_operation op set op.comm_rate, op.comm_rate_summa, op.comm_currency= (select bcc.comm_rate, bcc.comm_rate_summa, bcc.comm_currency from t_bvd_commission_calc bcc where op.id=bcc.id) Oracle на этот запрос ругается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2003, 12:52 |
|
||
|
Как сделать Update?
|
|||
|---|---|---|---|
|
#18+
Вот такой Update заработал: update t_operation op set (op.comm_rate, op.comm_rate_summa, op.comm_currency)= (select bcc.comm_rate, bcc.comm_rate_summa, bcc.comm_currency from t_bvd_commission_calc bcc where op.id=bcc.id) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2003, 13:07 |
|
||
|
Как сделать Update?
|
|||
|---|---|---|---|
|
#18+
это тебе кажется. select bcc.comm_rate, bcc.comm_rate_summa, bcc.comm_currency from t_bvd_commission_calc bcc where op.id=bcc.id может возвратить пустую строку еще where нужно поставить для update statement-а ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2003, 13:10 |
|
||
|
Как сделать Update?
|
|||
|---|---|---|---|
|
#18+
Т.е. нужно update t_operation op set (op.comm_rate, op.comm_rate_summa, op.comm_currency)= (select bcc.comm_rate, bcc.comm_rate_summa, bcc.comm_currency from t_bvd_commission_calc bcc where op.id=bcc.id) where exists(select * from t_bvd_commission_calc bcc where op.id=bcc.id) ? А как-нибудь короче нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2003, 13:24 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=2785&tid=1990840]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 333ms |

| 0 / 0 |
