Почему не работает .... (access 2003)

Тема в разделе "SQL", создана пользователем Leon, 8 окт 2006.

Статус темы:
Закрыта.
  1. Leon

    Leon Гость

    Доброго времени суток, кто-нибудь может объяснить, почему такой запрос с 2-мя таблицами работает :


    UPDATE Firms_t, PRODUCT_LIST SET Firms_t.FirmNameEng = "<>"
    WHERE (((Firms_t.FirmNamerus)=Product_list.ProdNamerus));

    а с одной - выдает какую-то хрень ?? ->

    UPDATE Firms_t SET Firms_t.FirmNameEng = "<>"
    WHERE (((Firms_t.FirmNamerus)=Firms_t.ProdNamerus))

    Может кто сталкивался с этим...


    и такой маленький вопросик, можно на sql (под аксес) обновить поле с заданым интервалом, например от 10 до 27 или 50-100 или только Vba ??? (приведите пож. примеры)
     
  2. ooo

    ooo Гость

    Подробнее мысли изложите, а то телепатически трудно догнать.Какой интервал, значений поля?
     
  3. Barmutik

    Barmutik Гость

    Я конечно могу ошибаться но что-то мне подсказывает что ANSI стандарт языка SQL для команды UPDATE подразумевает обновление только одной таблицы за раз... условия могут быть из разных, а оновление только одной таблицы...
     
  4. ooo

    ooo Гость

    UPDATE Firms_t SET Firms_t.FirmNameEng = "<>"
    WHERE exists (select 1 from product_list
    where Product_list.ProdNamerus=firms_t.firmnamerus)
    and <значение поля> between 1 and 27;
    Может это имелось ввиду?
     
  5. Leon

    Leon Гость

    Походу вы меня не правильно поняли, первый вопрос: (Поясняю), почему не работает такой запрос (если кому не влом, проверьте)

    UPDATE Firms_t SET Firms_t.FirmNameEng = "<>"
    WHERE (((Firms_t.FirmNamerus)=Firms_t.ProdNamerus));

    т.е. обновить 1 поле в таблице на основе равенства (то есть если 2 других поля равны, это поле обновляется, а если не равны - то нет) 2-х других <u>в одной таблице</u>. У меня почему-то выдает какую-то хрень....



    и второй отдельный вопрос, как проапдейтить поле с заданным интервалом в таблице, т.е.

    Update table1 Set pole = [интервал]

    любой интервал, как правильно записать эту команду, а то у меня чего-то синтаксис страдает....
     
  6. Barmutik

    Barmutik Гость

    Первый в MS SQL Server работает .. только зачем двойные кавычки не понятно...

    А второй ... UPDATE table1 SET pole IN (1..100)
     
  7. Leon

    Leon Гость

    С первым тоже разобрался, все ок (кавычки потому что без них знак "не равно" в ацесе =)), а со вторым попробую, спасибо !

    На счет второго, access'03 пишет на IN - ошибка синтаксиса в инструкции Update, не работает млин !
     
  8. Barmutik

    Barmutik Гость

    Опс .. не так :blink: Приношу извинения ...

    Код (Text):
    UPDATE Table1 SET Pole = value WHERE Pole IN (1, 5, 7, .., 100)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей