Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+) / 16 сообщений из 16, страница 1 из 1
16.11.2003, 10:17
    #32325562
Гоша
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: обновлял первый десять записей если знасение одного из полей равно 0?
В MS SQL работает такой:
UPDATE words SET words.les_num = 1
WHERE les_num in (SELECT TOP 10 les_num FROM words WHERE les_num=0);
А в Аксесе обновляет все записи в которых заданное поле равно 0.
...
Рейтинг: 0 / 0
16.11.2003, 10:52
    #32325564
Гоша
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
Ну что же все молчат, что ни кто с таким не сталкивался?
...
Рейтинг: 0 / 0
16.11.2003, 11:11
    #32325567
TatianaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
может я ошибаюсь но в аксесе в запросе на UPDATE Тор нельзя использовать

т.е тебе надо построить 2 запроса: 1й- селест с Тор-ом и сохранить его
а 2й -делать UPDATE записей из того запроса
...
Рейтинг: 0 / 0
16.11.2003, 11:27
    #32325569
Гоша
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
В том то и дело что просто используется просто база Аксесовская а весь интерфейс пишется на C# и как там все это замутить ума не приложу :(
...
Рейтинг: 0 / 0
16.11.2003, 11:40
    #32325571
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
По-моему, с TOP'ом все в порядке. Только я не понял вот это:

WHERE les_num in (SELECT TOP 10 les_num FROM words WHERE les_num=0)

То есть не ключ проверяется, а les_num. Это все равно, что написать:

UPDATE words SET words.les_num = 1
WHERE les_num=0;

Те два варианта результата, которые приведены в первом топике, к этому запросу относиться не могут.
...
Рейтинг: 0 / 0
16.11.2003, 11:47
    #32325574
TatianaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
ВС, ты ещё раз посмотри- он апдейтирует les_num в 1, где оно les_num =0
и хочет только 10 записей, а апдейтируются все где les_num =0
т,е как будто тор не видит
...
Рейтинг: 0 / 0
16.11.2003, 11:55
    #32325578
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
А. Понял, пардон. Мне показалось, что он должен обновлять записи, в которых значение одного из полей = 0, а он вместо этого обновляет те записи, в которых значение данного поля = 0.

Он и будет игнорировать TOP. Внутренний запрос возвращает несколько записей, в которых les_num=0. А внешний берет все записи, в которых les_num такой, как les_num во внутреннем запросе. То есть все записи, в которых les_num=0.
...
Рейтинг: 0 / 0
16.11.2003, 11:59
    #32325579
TatianaT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
а я про что говорю?
мне кажется что надо разбить на 2 запроса, а как он из C# запускать их будет это я не знаю :)
...
Рейтинг: 0 / 0
16.11.2003, 12:06
    #32325584
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
Исправить можно так:

UPDATE words SET words.les_num = 1
WHERE xxx in (SELECT TOP 10 xxx FROM words WHERE les_num=0);

где xxx - это ключ (если в этой таблице есть ключ, состоящий из одного поля).

А почему исходный запрос где-то работал - этого я не понимаю.
...
Рейтинг: 0 / 0
16.11.2003, 12:32
    #32325592
Гоша
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
Идея такая: есть таблица в ней записи и надо эти записи разбить на группы по 25 записей для последующей их выборки по группам. Правда я немного не понял насчет xxx, не могли бы вы пояснить?
...
Рейтинг: 0 / 0
16.11.2003, 12:35
    #32325594
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
xxx - это какое-нибудь поле, значения которого не повторяются. Если такое в этой таблице есть, то хорошо.
...
Рейтинг: 0 / 0
16.11.2003, 12:40
    #32325595
Гоша
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
Нет такого поля, во всех полях данные могут повторяться. Я уже пробовал так:
UPDATE words SET words.les_num = 1
WHERE eng_word In (SELECT TOP 5 * FROM words WHERE les_num=0)
аксес говорит что без использования EXIST возвращается не одна запись и не выполняет запрос. Что-бы придумать?
...
Рейтинг: 0 / 0
16.11.2003, 12:47
    #32325598
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
Добавить новое поле типа счетчик. Иначе никак.
...
Рейтинг: 0 / 0
16.11.2003, 12:47
    #32325600
Гоша
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
С ключивым полем работает :) Ну а как бы без него обойтись?
...
Рейтинг: 0 / 0
16.11.2003, 12:48
    #32325601
Владимир Саныч
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
Никак.
...
Рейтинг: 0 / 0
16.11.2003, 12:51
    #32325603
Гоша
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+)
Все спасибо разобрался, оказывается это я тормоз :) я для тестирования данные в таьлицу не забивал кроме одного поля les_num, вот он и не мог обновить только выбранные записи, как только ввел данные все заработало и без создания ключивого поля :) теперь запрос выглядит так:
UPDATE words SET words.les_num =3
WHERE eng_word In (SELECT TOP 5 eng_word FROM words WHERE les_num=0);
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как должен выглядеть SQL запрос в Аксесе чтобы он дклал следующее: (+) / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]