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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расшифровка полей одной таблицы через поле другой 
:(
    Опции темы
Sand_Girl
Дата 2.4.2007, 10:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



  Здравствуйте. Проблема в следующем. Есть 2 таблицы: menu и auto. В menu содержится расшифровка полей таблицы auto. Задание состоит в том, чтобы вывести таблицу auto в расшифрованном виде.
Структура таблицы menu следующая:
C_MENU | C_REC| NAME_REC
      С      |     )     |    легковой авто
      B      |     *     |   Россия
...
Структура таблицы auto:
Number | С_TYPE | С_PLANT| ...
   1        |     С)      |     B*
...
Таким образом, расшифровка для каждого из полей находится в поле NAME_REC таблицы menu. И чтобы расшифровать тип (С_TYPE) автомобиля с Number 1 необходимо найти такое поле NAME_REC, для которого выполняется условие: (C_MENU + C_REC) = NAME_REC. Таким же образом для C_PLANT и т.д. Запрос пишу следующим образом (пытаюсь расшифровать 2 поля: C_TYPE и C_PLANT): 

SELECT 
auto.Number,  type.NAME_REC as Тип, factory.NAME_REC as Завод
FROM auto 
INNER JOIN menu type ON auto.C_TYPE = (type.C_MENU + type.C_REC)
INNER JOIN menu factory ON auto.C_PLANT = (factory.C_MENU + factory.C_REC)
ORDER BY Number

Если убрать второй inner, всё отлично срабатывает. А так выдаёт ошибку: "Ошибка синтаксиса (пропущен оператор) в выражении запроса ' auto.C_TYPE = (type.C_MENU + type.C_REC) INNER JOIN menu factory ON auto.C_TYPE = (factory.C_MENU + factory.C_REC) ' "

Работаю с БД через ADO, в C++ Builder.

Если возможно, подскажите, пожалуйста, в чём дело. Просто это задание на лабораторную, в лекциях подобного не было, в инете тоже не удалось найти.

Это сообщение отредактировал(а) Sand_Girl - 2.4.2007, 12:30
PM MAIL   Вверх
Akina
Дата 2.4.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(Sand_Girl @  2.4.2007,  11:34 Найти цитируемый пост)
подскажите, пожалуйста, в чём дело.

Скобки надо не забывать расставлять.

Код

SELECT 
auto.Number,  type.NAME_REC as Тип, factory.NAME_REC as Завод
FROM 
(
(
auto 
INNER JOIN menu type ON auto.C_TYPE = (type.C_MENU + type.C_REC)
)
INNER JOIN menu factory ON auto.C_TYPE = (factory.C_MENU + factory.C_REC)
)
ORDER BY Number

А то получалось что второй inner join становился частью условия связывания первого.


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

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


Новичок



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

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



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

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

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

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


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

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


 




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


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

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