|
|
|
Update таблицы
|
|||
|---|---|---|---|
|
#18+
Всем доброго времени суток. Нужна помощь с написанием запроса для hibernate пока на sql. Есть несколько таблиц Требуется написать запрос, который будет обновлять COMP_BALANCE "деньгами"= sum(route_price*count(event_id)), т.е. в ивентс будут приходить сообщения(bus_id + время оплаты), стоимость проезда route_price может быть уникальна для каждого route_number, в свою очередь route_number связан отношением один ко многим с bus_id. Написал запрос, пока не очень правильный, возвращает 2 значения: Запрос Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Возвращает 2 значения: Код: plaintext 1. 2. 3. Запрос2 Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Пишет ошибка Error starting at line : 22 in command - update COMPANIES CM SET (CM.COMP_BALANCE) in ( SELECT COM.COMPANY_ID AS CMID, (COUNTEVENTS*R.ROUTE_PRICE) AS TOTALSUM FROM COMPANIES COM INNER JOIN ROUTES R ON R.COMPANY_ID = COM.COMPANY_ID INNER JOIN BUSES B ON B.COMPANY_ID = COM.COMPANY_ID INNER JOIN ( SELECT COUNT(E.EVENT_ID) AS COUNTEVENTS, E.BUS_ID FROM EVENTS E -- WHERE TO_DATE(E.PAYMENT_TIME) = TO_DATE(sysdate) GROUP BY E.BUS_ID )E ON E.BUS_ID=B.BUS_ID GROUP BY COM.COMPANY_ID, COUNTEVENTS*R.ROUTE_PRICE)AA where CM.COMPANY_ID = AA.CMID Error at Command Line : 23 Column : 27 Error report - SQL Error: ORA-00927: missing equal sign 00927. 00000 - "missing equal sign" *Cause: *Action: Направьте в нужную сторону) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2017, 20:40 |
|
||
|
Update таблицы
|
|||
|---|---|---|---|
|
#18+
> SET (CM.COMP_BALANCE) in > "missing equal sign" Вроде все понятно. Изучите основы SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2017, 20:46 |
|
||
|
Update таблицы
|
|||
|---|---|---|---|
|
#18+
Писал SET (CM.COMP_BALANCE) = (... Ошибка была ОшибкаSP2-0158: unknown SET option "(cm.comp_balance)" >>Query Run In:Query Result Error starting at line : 22 in command - update COMPANIES CM SET (CM.COMP_BALANCE) = ( SELECT COM.COMPANY_ID AS CMID, (COUNTEVENTS*R.ROUTE_PRICE) AS TOTALSUM FROM COMPANIES COM INNER JOIN ROUTES R ON R.COMPANY_ID = COM.COMPANY_ID INNER JOIN BUSES B ON B.COMPANY_ID = COM.COMPANY_ID INNER JOIN ( SELECT COUNT(E.EVENT_ID) AS COUNTEVENTS, E.BUS_ID FROM EVENTS E -- WHERE TO_DATE(E.PAYMENT_TIME) = TO_DATE(sysdate) GROUP BY E.BUS_ID )E ON E.BUS_ID=B.BUS_ID GROUP BY COM.COMPANY_ID, COUNTEVENTS*R.ROUTE_PRICE)AA where CM.COMPANY_ID = AA.CMID Error at Command Line : 43 Column : 59 Error report - SQL Error: ORA-00933: SQL command not properly ended 00933. 00000 - "SQL command not properly ended" *Cause: *Action: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2017, 20:49 |
|
||
|
Update таблицы
|
|||
|---|---|---|---|
|
#18+
> SET (CM.COMP_BALANCE) = (... > Ошибка была Повторяю - изучите основы SQL. Не надо выдумывать синтаксис. Надо читать текст ошибки. Надо прочесть документацию (для кого я это говорю?). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2017, 20:52 |
|
||
|
Update таблицы
|
|||
|---|---|---|---|
|
#18+
dmdmdm, Прежде чем пойти читать документацию, последний вопрос - это через update можно сделать вообще? Обновить сразу несколько записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2017, 20:58 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39438992&tid=1886095]: |
0ms |
get settings: |
12ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
237ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 565ms |

| 0 / 0 |
