Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите объеденить 3 таблицы, ADO, MS Access 
V
    Опции темы
demoded
Дата 21.8.2009, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



сделал сам
есть таблица с фирмами и таблица с задачами поставленными для некоторых фирм, т.е. надо видеть все фирмы и если есть задача для фирмы то вывести ее ID и ID менеджера создавшего задачу (например)

Код

SELECT Firms.NameShort, TimeLine.TimeLineID, TimeLine.EmploeeID
FROM Firms LEFT JOIN TimeLine ON Firms.FirmaID=TimeLine.FirmaID;


застрял на том что надо бы теперь приджойнить таблицу с работниками, чтобы вывести Emploee.NameShort вместо EmploeeID.
напрямую присоеденить таблицу с работниками не получится, потому что с левой стороны есть строки с EmploeeID=NULL
я попробовал сначала собрать TimeLine и Emploee

Код

SELECT TimeLineID, TimeLine.EmploeeID, Emploee.NameShort, TimeLine.FirmaID
FROM TimeLine INNER JOIN Emploee ON TimeLine.EmploeeID=Emploee.EmploeeID;

это все работает.

потом использовать это при подстановке к Firms
Код

SELECT Firms.FirmaID, Emploee.NameShort
FROM Firms LEFT JOIN 
         (SELECT TimeLineID, TimeLine.EmploeeID, Emploee.NameShort, TimeLine.FirmaID
          FROM TimeLine INNER JOIN Emploee ON TimeLine.EmploeeID=Emploee.EmploeeID)
         ON Firms.FirmaID=TimeLine.FirmaID ;


говорит ошибка синтаксиса...
PM MAIL   Вверх
Frees
Дата 21.8.2009, 08:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

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



говорит ошибка синтаксиса...

а так
Код

SELECT f.FirmaID, e.NameShort
FROM Firms f
     LEFT JOIN
         (SELECT em.NameShort, tl.FirmaID
          FROM TimeLine tl INNER JOIN Emploee em ON tl.EmploeeID=em.EmploeeID) e
         ON f.FirmaID=e.FirmaID ;


но помоему чет перемудрил с запросом, выложи ddl и пример данных и что надо получить

Добавлено через 2 минуты и 4 секунды
может так

Код

SELECT f.FirmaID, em.NameShort
FROM Firms f
LEFT JOIN TimeLine tl on (tl.FirmaID=f.FirmaID)
left JOIN Emploee em ON tl.EmploeeID=em.EmploeeID



--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
demoded
Дата 21.8.2009, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Frees @ 21.8.2009,  08:34)
Добавлено @ 08:36
может так

Код

SELECT f.FirmaID, em.NameShort
FROM Firms f
LEFT JOIN TimeLine tl on (tl.FirmaID=f.FirmaID)
left JOIN Emploee em ON tl.EmploeeID=em.EmploeeID

да спасибо, это помогло... странно чето сам втупил, что таблицу с работниками надо было тоже через LEFT JOIN просоединять

Это сообщение отредактировал(а) demoded - 21.8.2009, 08:53
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


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

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


 




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


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

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