|
|
|
Подзапрос с группировкой не дает сделать Update
|
|||
|---|---|---|---|
|
#18+
В принципе, этот вопрос уже обсуждался здесь, но я опять наступаю на эти грабли.\r \r В упрощенном виде задача такова.\r Есть таблица data(key,name,flag)\r Например там такие данные:\r key\tName\tflag\r ___________________\r 1\tМаша\tНет\r 5\tМаша\tНет\r 3\tДаша\tНет\r 4\tЛюба\tНет\r и таблица input(name), там\r Name\r _____\r Маша\r Даша\r \r Надо в таблице data проставить флаг девушкам из таблицы input, которые есть в таблице data и key которых максимальный, то есть в данном примере там, где key=5 и key=3\r Делаю так:\r qry1\r SELECT Max(data.key) AS [key]\r FROM [input] INNER JOIN data ON input.Name = data.Name\r GROUP BY data.Name\r WITH OWNERACCESS OPTION;\r А дальше как ни пытайся использовать этот подзапрос, например так:\r UPDATE qry1 INNER JOIN data ON qry1.key = data.key SET data.flag = True\r WITH OWNERACCESS OPTION; (или через in, или через where)\r вываливается злополучная ошибка "в операции должен использоваться обновляемый запрос". Групповая операция акцессу видите-ли , не нравится.\r Как решить проблему без dlookup и кэш-таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2004, 16:42 |
|
||
|
Подзапрос с группировкой не дает сделать Update
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2004, 17:04 |
|
||
|
Подзапрос с группировкой не дает сделать Update
|
|||
|---|---|---|---|
|
#18+
Vig, это не подходит, он одной Маше флаг проставляет: UPDATE data INNER JOIN [input] ON data.Name = input.Name SET data.flag = True WHERE (((data.key) In (SELECT Max([key]) AS keyMax FROM data, [input] WHERE (((data.Name)=[input]![name]))))) WITH OWNERACCESS OPTION; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2004, 17:27 |
|
||
|
Подзапрос с группировкой не дает сделать Update
|
|||
|---|---|---|---|
|
#18+
какой-то у тебя Access неправильный Специально проверил Код: plaintext 1. 2. 3. 4. Access2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2004, 17:36 |
|
||
|
Подзапрос с группировкой не дает сделать Update
|
|||
|---|---|---|---|
|
#18+
VIG, Значит я не правильно его понял. Поясни, пожалуйста. Я неправилно его "перевел"? Непонятно, как он может работать - в подзапросе группировки нет - он будет возвращать одно значение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2004, 17:44 |
|
||
|
Подзапрос с группировкой не дает сделать Update
|
|||
|---|---|---|---|
|
#18+
VIG, перевел еще раз твой запрос в термины условия - опять не то - что за чертовщина: UPDATE data INNER JOIN [input] ON data.Name = input.Name SET data.flag = True WHERE (((data.key) = (SELECT Max([key]) AS keyMax FROM data d WHERE (((d.Name)=[data]![name]))))) WITH OWNERACCESS OPTION; Результат: key Name flag 1 Маша Нет 5 Маша Да 3 Даша Да 4 Люба Да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2004, 17:55 |
|
||
|
Подзапрос с группировкой не дает сделать Update
|
|||
|---|---|---|---|
|
#18+
Перевод :) Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2004, 17:58 |
|
||
|
Подзапрос с группировкой не дает сделать Update
|
|||
|---|---|---|---|
|
#18+
Результат (Access 2002) key Name flag 1 Маша Нет 5 Маша Да 3 Даша Да 4 Люба Да Щас в 2000 попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2004, 18:06 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32490455&tid=1675162]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
176ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 529ms |

| 0 / 0 |
