|
|
|
Не вставляет множественную выборку... :( Help!
|
|||
|---|---|---|---|
|
#18+
Доброе утро! Коллеги, тут чтой-то совсем непонятное творится у меня... Sybase ASA 8. Есть выборка из базы, которая должна с помощью insert записываться в другую базу. Строк в выборке может быть неограниченное количество. Сама выборка вот: select ObjDefID from InOutOccConns where MdlID = any((select m.ID from Model as m,Occ as o where m.ID = o.ModelID and m.TypeNum = 1 and o.DefinitionID = (select ObjDefID from InOutOccConns where MdlID = Model_Now and CoObjDefID = FuncNow and CxnDirection = 'OUT' and ObjDefTypeNum = 78))) and CxnDirection = 'OUT' and ObjDefTypeNum = 43 group by ObjDefID; Отрабатывается без каких-либо проблем, выдает свои значения, проверено. Но! Если его результаты передаешь в таблицу начинаются крики недовольства, а конкретно - 186-я ошибка, гласящая, что запрос не может возвращать больше чем одну строку. С какой стати-то? insert into AllModels(UnitID) select ObjDefID from InOutOccConns where MdlID = any((select m.ID from Model as m,Occ as o where m.ID = o.ModelID and m.TypeNum = 1 and o.DefinitionID = (select ObjDefID from InOutOccConns where MdlID = Model_Now and CoObjDefID = FuncNow and CxnDirection = 'OUT' and ObjDefTypeNum = 78))) and CxnDirection = 'OUT' and ObjDefTypeNum = 43 group by ObjDefID; Вроде как вставка в таблицу результатов запроса отродясь не ограничивалась количеством строк. Помогите пожалуйста разобраться в чем я или ASA неправы... Заранее спасибо! Кто знает жизнь, тот не торопится... Удачи на дорогах! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 09:11 |
|
||
|
Не вставляет множественную выборку... :( Help!
|
|||
|---|---|---|---|
|
#18+
может в group by дело? можно тогда так попробовать select distinct ... вместо group by Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 10:38 |
|
||
|
Не вставляет множественную выборку... :( Help!
|
|||
|---|---|---|---|
|
#18+
Дело в подзапросе, абсолютно точно. В нем выбирется несколько значений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 11:58 |
|
||
|
Не вставляет множественную выборку... :( Help!
|
|||
|---|---|---|---|
|
#18+
ну, утверждается же, что работает select без insert-а а вообще, конечно, в любом случае надо вместо = (select ObjDefID ...) использовать in (select ObjDefID ...) или = (select max(ObjDefID) ...) Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 12:12 |
|
||
|
Не вставляет множественную выборку... :( Help!
|
|||
|---|---|---|---|
|
#18+
Litus ну, утверждается же, что работает select без insert-а а вообще, конечно, в любом случае надо вместо = (select ObjDefID ...) использовать in (select ObjDefID ...) или = (select max(ObjDefID) ...) Posted via ActualForum NNTP Server 1.1 Нет, серьезно все работает. Я потом это заметил и поставил перед скобками any, но проблему сие не решило. Решило следующее, база AllModels была описана следующим образом: Код: plaintext 1. 2. 3. 4. 5. 6. Как только выкинул строчку Record integer null default autoincrement все заработало. Чем она мешала - ума не приложу. Тем более что при сходных операциях с другими таблицами, где есть аналогичные поля, проблем не возникало. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2005, 14:43 |
|
||
|
|

start [/forum/topic.php?fid=55&gotonew=1&tid=2013954]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
69ms |
get topic data: |
9ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 397ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...