Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.05.2013, 01:21   #1
pr1me222
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 19
По умолчанию SQL запрос на выборку

Есть такие таблицы


Задание звучит следующее: 3.2. Выбрать все продажи по некоторому типу товара (задается пользователем) до 01.01.06.

Мой запрос следующий:

SELECT Продажи.Код_товара, Дата, Код_продажи, Количество FROM ( Продажи INNER JOIN Товары ON Товары.Код_товара = Продажи.Код_товара)
INNER JOIN Типы ON Товары.Код_типа = Типы.Код_типа
WHERE (Тип_товара='Монитор' OR Тип_товара='Принтер') OR Тип_товара='Факс-модем'


Ошибка в том что, он запрашивает что ввести, но что бы я не вводила он просто выводит всю таблицу "Продажи".(( в чем ошибка ? подскажите пожалуйста(((
Пы.Сы: простите за ламерский вопрос(((
pr1me222 вне форума Ответить с цитированием
Старый 22.05.2013, 09:14   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

во-первых, у вас в запросе абсолютно бессмыслено расставлены круглые скобки (но это, скорее всего, не является причиной ошибки)

а во-вторых, у Вас поля "Код типа" "Тип товара" "Код товара" содержать в наименовании ПРОБЕЛ.
поэтому Access и не находит нужных полей.
Все такие поля нужно писать в запросе прямо с пробелом, только не забывать брать в квадратные скобки:
Код:
SELECT Продажи.[Код товара], Дата, [Код продажи], Количество FROM ... 
Товары.[Код товара] = Продажи.[Код_товара]
и т.д.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.05.2013, 09:51   #3
pr1me222
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 19
По умолчанию

Данная картинка, вырезана из книги. В самой бд я все названия таблиц, содержащие больше двух слов, писала с нижним подчеркиванием.
Да и он выводит таблицу. Но только не по условию, а всю.
Какой то я моментик пропустила( Вот не могу понять какой((
pr1me222 вне форума Ответить с цитированием
Старый 22.05.2013, 13:20   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте pr1me222.
Если не брать во внимание SQL конструкцию источника, а только условие отбора
WHERE (Тип_товара='Монитор' OR Тип_товара='Принтер') OR Тип_товара='Факс-модем'
то оно не совсем отвечает заданию "..по некоторому типу товара (задается пользователем) до 01.01.06.."
Установленным типам соответствуют все записи таблицы Продажи
Попробуйте его изменить подобным образом:
Код:
..
WHERE Продажи.Дата <= #1/1/2006# And Тип_товара Like [Введите тип товара]
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 22.05.2013, 13:55   #5
pr1me222
Пользователь
 
Регистрация: 11.05.2011
Сообщений: 19
Подмигивание

Цитата:
Сообщение от Teslenko_EA Посмотреть сообщение
Здравствуйте pr1me222.
Если не брать во внимание SQL конструкцию источника, а только условие отбора
WHERE (Тип_товара='Монитор' OR Тип_товара='Принтер') OR Тип_товара='Факс-модем'
то оно не совсем отвечает заданию "..по некоторому типу товара (задается пользователем) до 01.01.06.."
Установленным типам соответствуют все записи таблицы Продажи
Попробуйте его изменить подобным образом:
Код:
..
WHERE Продажи.Дата <= #1/1/2006# And Тип_товара Like [Введите тип товара]
Евгений.

АААААААААААААААА!!!!Спааааасибо Вам огромнооооое))) Заработалооооо))))

Окончательный вариант запроса следующий:

SELECT DISTINCT Продажи.Код_товара, Количество, Дата, Фирма, Тип_товара
FROM (Продажи INNER JOIN Товары ON Товары.Код_товара = Продажи.Код_товара)
INNER JOIN Типы ON Товары.Код_типа = Типы.Код_типа
WHERE Продажи.Дата <= #1/1/2006# And Тип_товара Like [Введите тип товара]
pr1me222 вне форума Ответить с цитированием
Старый 22.05.2013, 18:31   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

pr1me222, [Введите тип товара] является используемым параметром запроса
если хотите создать красивую/правильную конструкцию явно объявите его, т.е
в начале SQL конструкции добавьте следующую строку:
Код:
PARAMETERS [Введите тип товара] Text ( 255 );
SELECT ...
для текстовых значений это не обязательно, но это хороший тон.

Евгений.

P.S. на будущее: для удобочитаемости выкладываемые конструкции заключайте в тэги [соde]...[/соde]
для этого на панели расположена кнопка - #
Teslenko_EA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL запрос на выборку kolosok2590 Microsoft Office Access 7 16.01.2013 16:57
Запрос на выборку (SQL) stck Помощь студентам 1 13.04.2012 13:59
SQL запрос на выборку Vervolf SQL, базы данных 5 31.07.2011 15:35
Сложный запрос на выборку SQL simka16 Помощь студентам 0 21.02.2011 18:43
sql-запрос на выборку данных kity Помощь студентам 3 07.06.2010 17:18