Форум программистов, компьютерный форум, киберфорум
Наши страницы
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Anitalp
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 15
1

ошибка в SQL-запросе

01.12.2012, 20:33. Просмотров 739. Ответов 17
Метки нет (Все метки)

вечер добрый, есть малюсенькая проблемка, которая мне жить мешает,

SQL
1
2
3
4
5
6
SELECT транспорт.номер_авто
FROM транспорт INNER  JOIN работник
ON
транспорт.код_работника= работник.код_работника
WHERE 
код_работника = 10722

работаю в аксесе, соль в том что "транспорт.код_работника" определяет как параметр, и предлагает ввести значение с клавы, я же в этом не нуждаюсь, и хочу чтобы инфа бралась с поля в таблице, помогите кто чем может
 Комментарий модератора 
Кросспостинг запрещен правилами форума. Для каждого вопроса создавайте свою тему. Т.к. сообщения были перенесены в отдельную тему из трех, ответы немного перемешались
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2012, 20:33
Ответы с готовыми решениями:

Ошибка в SQL запросе!
Доброе время суток, изучаю БД, по заданию, нужно вывести фамилии всех читателей, имеющих...

Ошибка в запросе SQL
Форма "Достижения преподавателей" - вкладка "Посещение уроков" Добавляю данные - выходит сообщение...

Ошибка в запросе SQL
Подскажите, знающие в чем может быть проблема запроса. При закрытии "Обнаружены символы за...

Ошибка в тройном запросе sql
Доброй ночи. Посмотрите, пожалуйста, форумчане, что не так в моем тройном запросе, уже час голову...

В SQL-запросе "Ошибка синтаксиса в предложении FROM"
Здравствуйте. Работаю с базой Access через Delphi. Был написан SQL-запрос: SELECT...

17
sekonya
607 / 386 / 8
Регистрация: 14.04.2011
Сообщений: 1,302
01.12.2012, 21:13 2
вот так надо:
SQL
1
2
3
SELECT транспорт.номер_авто, работник.[код_работника:]
FROM работник INNER JOIN транспорт ON работник.[код_начальника:] = транспорт.код_работника
WHERE (((работник.[код_работника:])=10723));
заметьте номер другой, просто у работника с тем номером который вы указали нет транспорта, а вообще вам надо пересмотреть схему данных!
1
Anitalp
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 15
01.12.2012, 21:33  [ТС] 3
спасибо большое, а база данных на самом деле у меня с целостностью, просто я убирал связи, (мало ли чо оно), ну, а так большое спасибо

Добавлено через 11 минут
извините, но почему у работника 10722 нет транспорта, есть же у опеля код_работника 10722?
0
sekonya
607 / 386 / 8
Регистрация: 14.04.2011
Сообщений: 1,302
01.12.2012, 21:34 4
я думаю схема не верная
1
Anitalp
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 15
01.12.2012, 21:35  [ТС] 5
какие именно моменты?
0
sekonya
607 / 386 / 8
Регистрация: 14.04.2011
Сообщений: 1,302
01.12.2012, 21:36 6
ну, в той базе что вы мне скинули идет связь один к одному, это не правильно!
1
Anitalp
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 15
01.12.2012, 21:43  [ТС] 7
я работаю с этой базой а вот и я.rar
не много но отличия есть
0
sekonya
607 / 386 / 8
Регистрация: 14.04.2011
Сообщений: 1,302
01.12.2012, 21:47 8
у меня работает:
SQL
1
2
3
SELECT транспорт.номер_авто, работник.[код_работника:]
FROM работник INNER JOIN транспорт ON работник.[код_работника:] = транспорт.код_работника
WHERE (((работник.[код_работника:])=10722));
1
Anitalp
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 15
01.12.2012, 21:54  [ТС] 9
sekonya ваш запрос у меня тоже заработал, а прошлый нет..... ненавижу такие моменты, когда не понимаешь что происходит.......
0
sekonya
607 / 386 / 8
Регистрация: 14.04.2011
Сообщений: 1,302
01.12.2012, 21:55 10
просто в прошлом запросе связи были другие, откройте обе базы и посмотрите схему данных!
1
Anitalp
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 15
01.12.2012, 21:58  [ТС] 11
я это уже понял_)))))) там ключи разные были, в новой новый предикат нужен был))))
0
Anitalp
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 15
02.12.2012, 03:37  [ТС] 12
нужно вывести в с данной БД 2 столбца - номер машины и номер группы, в которой состоит владелец машины, в ней должон быть средний возраст больше 50 Вложение 207788, за ранее спасибо, если лень сделать, скажите плиз тогда как это сделать, вот я новый написал, только хз что это, и как это..

SQL
1
2
3
4
5
6
7
8
9
SELECT  транспорт.номер_авто, группа.код_отдела
FROM транспорт INNER JOIN
(работник INNER JOIN  группа) 
ON работник.код_отдела = группа.код_отдела
ON транспорт.код_работника = работник.код_работника
WHERE
 (((работник.[код_работника:])=10722)) AND (работник.стаж>10);
AND
группа.средний_возраст>50
0
sekonya
607 / 386 / 8
Регистрация: 14.04.2011
Сообщений: 1,302
02.12.2012, 09:34 13
Anitalp, вот так?
SQL
1
2
3
SELECT транспорт.номер_авто, группа.[код_группы:], группа.[средний_возраст:]
FROM ((отдел INNER JOIN группа ON отдел.[код_отдела:] = группа.[код_отдела:]) INNER JOIN работник ON отдел.[код_отдела:] = работник.[код_отдела:]) INNER JOIN транспорт ON работник.[код_работника:] = транспорт.код_работника
WHERE (((группа.[средний_возраст:])>50));
1
iifat
2486 / 1589 / 142
Регистрация: 05.06.2011
Сообщений: 4,486
02.12.2012, 11:15 14
Цитата Сообщение от Anitalp Посмотреть сообщение
"транспорт.код_работника" определяет как параметр, и предлагает ввести значение с клавы
Странно. Мне вот как раз where код_работника подозрителен -- почему без алиаса?
2
Anitalp
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 15
02.12.2012, 14:38  [ТС] 15
это не существенно, так как это я знаю как исправить, но параметр, а в прочим и этому гашлось решение, там скобки нужны были просто, что то типа этого
SQL
1
2
3
4
5
6
SELECT транспорт.номер_авто
FROM транспорт INNER JOIN работник
ON
транспорт.[код_работника:]= работник.код_работника
WHERE 
работник.[код_работника:] = 10722
0
alvk
Эксперт MS Access
6358 / 3966 / 235
Регистрация: 12.08.2011
Сообщений: 11,015
05.12.2012, 05:24 16
не надо использовать разные двоеточия, апострофы и т.д. в именах полей и таблиц, хотите красивостей - делайте псевдонимы.
1
Anitalp
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 15
16.12.2012, 14:38  [ТС] 17
а с этим подмогнете, бд5.rar надо вывести количество люд, которые соответствуют условию, а оно всех шурует, как это можно решить?
а вот по сути и запрос

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT COUNT(Заказ.Код_сотрудника) AS сотрудник, Заказ.Код_сотрудника
FROM Заказ
WHERE ((
Заказ.Код_сотрудника) IN (SELECT 
Заказ.[Код_сотрудника]
FROM
Заказ
WHERE
Заказ.[Дата_заказа] >= DateValue('01.01.2012')
AND
Заказ.[Дата_заказа] <= DateValue('31.01.2012')
))
GROUP BY Заказ.Код_сотрудника;
0
Anitalp
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 15
16.12.2012, 15:03  [ТС] 18
ПРОБЛЕМУ УЖЕ РЕШИЛ
SQL
1
2
3
4
5
6
7
SELECT COUNT(Заказ.Код_сотрудника) AS кол_заказ, Заказ.Код_сотрудника
FROM Заказ
WHERE
Заказ.[Дата_заказа] >= DateValue('01.01.2012')
AND
Заказ.[Дата_заказа] <= DateValue('31.01.2012')
GROUP BY Заказ.Код_сотрудника;
0
16.12.2012, 15:03
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 15:03

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Sql переменная в запросе
Здравствуйте! Подскажите как объявлять и использовать переменные в Access? Пробую так:DECLARE...

ElseIf в SQL запросе
Здравствуйте, Уважаемые форумчане! Столкнулся с такой проблемой: необходимо SQL запросом...

Выборка IN в запросе SQL
Формирую запрос в vba для рекордсета: tpl = &quot;SELECT tips.id, tips.info, tips.theme, IIf((&quot; &amp;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.