Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обновление в подзапросе 
V
    Опции темы
lotax
Дата 15.10.2007, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 18.4.2005
Где: KZ

Репутация: нет
Всего: нет



Помогите сформировать запрос:

  Есть таблица (SP_TEL) телефонов, с полями TEL(номер телефона, с кодом города в телефоне), CITY_NM(название города). 

   TEL           CITY_NM
--------------------------------
  1112323   
  1116565
  1118989
  2228989
  2224545
  3334545

   И таблица (SP_CITY) городов с кодами: CODE(код города, уникал.), NM(название города).

  CODE     NM
----------------------------------- 
  111        Test1
  222        Test2
  333        Test3

   Как проставить в SP_TEL, название города?  smile 



Это сообщение отредактировал(а) lotax - 15.10.2007, 12:46
--------------------
Говори, что думаешь и думай, что говоришь.
PM MAIL ICQ   Вверх
kapbepucm
Дата 15.10.2007, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12





--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Akina
Дата 15.10.2007, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Код

update SP_TEL, SP_CITY
Set SP_TEL.CITY_NM = SP_CITY.NM
Where left(SP_TEL.TEL, 3) = SP_CITY.CODE



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
kapbepucm
Дата 16.10.2007, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 993
Регистрация: 14.6.2007
Где: Латвия

Репутация: нет
Всего: 12



В общем случае, если длина кода не определена:
Код
Public Function GetCity(Nomer As String, RST As DAO.Recordset) As String
  GetCity = ""
  RST.MoveFirst
  Do While Not RST.EOF
    If RST.Fields("CODE") = Left(Nomer, Len(RST.Fields("CODE"))) Then
      GetCity = RST![NM]
      Exit Do
    End If
    RST.MoveNext
  Loop
End Function
Sub MainProcedure()
  Dim DBS As DAO.Database
  Dim RST As DAO.Recordset
  Dim RST2 As DAO.Recordset
  Set DBS = CurrentDb
  Set RST = DBS.OpenRecordset("SELECT SP_CITY.CODE, SP_CITY.NM FROM SP_CITY ORDER BY Len(SP_CITY.CODE) DESC;")
  Set RST2 = DBS.OpenRecordset("SELECT SP_TEL.TEL, SP_TEL.CITY_NM FROM SP_TEL;")
  Do While Not RST2.EOF
    RST2.Edit
    RST2![CITY_NM] = GetCity(RST2![TEL], RST)
    RST2.Update
    RST2.MoveNext
  Loop
  RST.Close
  RST2.Close
  DBS.Close
End Sub
Сделано на основе того нечто.

Это сообщение отредактировал(а) kapbepucm - 16.10.2007, 09:20


--------------------
(С) kapbepucm
PM MAIL Skype   Вверх
Akina
Дата 16.10.2007, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(kapbepucm @  16.10.2007,  10:00 Найти цитируемый пост)
В общем случае, если длина кода не определена:

вполне достаточно

Код

update SP_TEL, SP_CITY
Set SP_TEL.CITY_NM = SP_CITY.NM
WHERE Instr(SP_TEL.TEL, SP_CITY.CODE) = 1


Другое дело, если существуют такие коды, что один из нихявляется префиксом другого...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
lotax
Дата 16.10.2007, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 121
Регистрация: 18.4.2005
Где: KZ

Репутация: нет
Всего: нет



Большое спасибо, всем, особенно Akina.

То, что надо
Код

update SP_TEL, SP_CITY
Set SP_TEL.CITY_NM = SP_CITY.NM
Where left(SP_TEL.TEL, 3) = SP_CITY.CODE


--------------------
Говори, что думаешь и думай, что говоришь.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0467 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.