Страница: 1 |
Товарищи, нужна ваша СРОЧНАЯ ПОМОЩЬ!!! Есть 3 таблицы (с указанием реквизитов): Магазины (Код магазина|Наименование|Дилер|Район|Адрес|Телефон|), Детали (Код детали|Наименование|... и т.д.), Реестр (Код записи|Код магазина|Код детали|Цена) Нужно написать запрос, выводящий все магазины, торгующие указанной деталью (предположим, 'КОЛЕСО') с указанием цены по которой продается деталь. Вот что я написал: SELECT Наименование, Дилер, Район, Адрес, Телефон, Реестр.[Цена детали (руб)] Проблема в том, что в этом случае выдаются все записи в таблице Магазины, коды которых указаны в таблице Реестр. А нужно, чтобы только те, где Реестр.Код детали = Детали.Код детали и т.д. (по запросу должно быть понятно...). Очень жду вашей помощи, заранее благодарен, Михаил.
SELECT Наименование, Дилер, Район, Адрес, Телефон, Реестр.[Цена детали (руб)] AASoft, запрос не работает (набирал в Access) - пишет - "ошибка синтаксиса (пропущен оператор)" SELECT Наименование, Дилер, Район, Адрес, Телефон, Реестр.[Цена детали (руб)] WHERE Магазины.[Код магазина] = Реестр.[Код магазина] AND Магазины.[Код магазина] =Реестр.[Код магазина] AND Реестр.[Код детали] IN Попробуй так. согласен с AASoft, INNER JOIN будет всегда быстрей SELECT IN (...), ведь только в этом случае работает поиск по индексу (Реестр.[Код детали]) а в запросе пропущены круглые скобки: SELECT Наименование, Дилер, Район, Адрес, Телефон, Реестр.[Цена детали (руб)] FROM (Магазины INNER JOIN Реестр ON Магазины.[Код магазина] = Реестр.[Код магазина]) INNER JOIN Детали ON Детали.[Код детали] = Реестр.[Код детали] WHERE Детали.Наименование = 'Колесо'; если запрос пишешь а Акцессе, то используй построитель запросов - он правильно соберет связи Страница: 1 |
Вопрос: Знатокам SQL СРОЧНО!!!
Добавлено: 23.04.04 19:51
Автор вопроса:
Ганчиков
FROM Магазины,Реестр
WHERE Магазины.[Код магазина] = Реестр.[Код магазина] AND Магазины.[Код магазина] IN (SELECT [Код магазина] FROM Реестр WHERE Реестр.[Код детали] IN
(SELECT [Код детали] FROM Детали WHERE Детали.Наименование = 'Колесо'))
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа: AASoft
Вопросов: 86
Ответов: 920
Профиль | | #1
Добавлено: 23.04.04 21:26
FROM Магазины INNER JOIN Реестр ON Магазины.[Код магазина] = Реестр.[Код магазина] INNER JOIN Детали ON Детали.[Код детали] = Реестр.[Код детали] WHERE Детали.Наименование = 'Колесо'
Номер ответа: 2
Автор ответа: Ганчиков
Вопросов: 8
Ответов: 5
Профиль | | #2
Добавлено: 25.04.04 11:40
Номер ответа: 3
Автор ответа: ol2003
Вопросов: 3
Ответов: 122
Профиль | | #3
Добавлено: 26.04.04 22:56
FROM Магазины, Реестр
(SELECT [Код детали] FROM Детали WHERE Детали.Наименование = 'Колесо')
Номер ответа: 4
Автор ответа: OAN
Вопросов: 2
Ответов: 17
Профиль | | #4
Добавлено: 28.04.04 11:13
Номер ответа: 5
Автор ответа: AASoft
Вопросов: 86
Ответов: 920
Профиль | | #5
Добавлено: 30.04.04 21:34
gy, ya evo tak prosto pisal, bez nichego. a voobsheto naskokaya znayu enti skobki ne nuzhny....aaaaaaaa, mozhet to toka v SQL Server'e, a??nu, ne znayu, no vopros ved` vrode reshili?nu i horosho esli rabotaet