|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.05.2013, 01:21 | #1 |
Пользователь
Регистрация: 11.05.2011
Сообщений: 19
|
SQL запрос на выборку
Есть такие таблицы
Задание звучит следующее: 3.2. Выбрать все продажи по некоторому типу товара (задается пользователем) до 01.01.06. Мой запрос следующий: SELECT Продажи.Код_товара, Дата, Код_продажи, Количество FROM ( Продажи INNER JOIN Товары ON Товары.Код_товара = Продажи.Код_товара) INNER JOIN Типы ON Товары.Код_типа = Типы.Код_типа WHERE (Тип_товара='Монитор' OR Тип_товара='Принтер') OR Тип_товара='Факс-модем' Ошибка в том что, он запрашивает что ввести, но что бы я не вводила он просто выводит всю таблицу "Продажи".(( в чем ошибка ? подскажите пожалуйста((( Пы.Сы: простите за ламерский вопрос((( |
22.05.2013, 09:14 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
во-первых, у вас в запросе абсолютно бессмыслено расставлены круглые скобки (но это, скорее всего, не является причиной ошибки)
а во-вторых, у Вас поля "Код типа" "Тип товара" "Код товара" содержать в наименовании ПРОБЕЛ. поэтому Access и не находит нужных полей. Все такие поля нужно писать в запросе прямо с пробелом, только не забывать брать в квадратные скобки: Код:
|
22.05.2013, 09:51 | #3 |
Пользователь
Регистрация: 11.05.2011
Сообщений: 19
|
Данная картинка, вырезана из книги. В самой бд я все названия таблиц, содержащие больше двух слов, писала с нижним подчеркиванием.
Да и он выводит таблицу. Но только не по условию, а всю. Какой то я моментик пропустила( Вот не могу понять какой(( |
22.05.2013, 13:20 | #4 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте pr1me222.
Если не брать во внимание SQL конструкцию источника, а только условие отбора WHERE (Тип_товара='Монитор' OR Тип_товара='Принтер') OR Тип_товара='Факс-модем' то оно не совсем отвечает заданию "..по некоторому типу товара (задается пользователем) до 01.01.06.." Установленным типам соответствуют все записи таблицы Продажи Попробуйте его изменить подобным образом: Код:
|
22.05.2013, 13:55 | #5 | |
Пользователь
Регистрация: 11.05.2011
Сообщений: 19
|
Цитата:
АААААААААААААААА!!!!Спааааасибо Вам огромнооооое))) Заработалооооо)))) Окончательный вариант запроса следующий: SELECT DISTINCT Продажи.Код_товара, Количество, Дата, Фирма, Тип_товара FROM (Продажи INNER JOIN Товары ON Товары.Код_товара = Продажи.Код_товара) INNER JOIN Типы ON Товары.Код_типа = Типы.Код_типа WHERE Продажи.Дата <= #1/1/2006# And Тип_товара Like [Введите тип товара] |
|
22.05.2013, 18:31 | #6 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
pr1me222, [Введите тип товара] является используемым параметром запроса
если хотите создать красивую/правильную конструкцию явно объявите его, т.е в начале SQL конструкции добавьте следующую строку: Код:
Евгений. P.S. на будущее: для удобочитаемости выкладываемые конструкции заключайте в тэги [соde]...[/соde] для этого на панели расположена кнопка - # |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |