Задавайте вопросы, мы ответим
Вы не зашли.
народ, может есть добрые люди здесь которые помогут. пишу курсач по БД и препод ругается на использование JOIN. сам просто я в sql чайник.
1 запрос)
SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, Count(Заказы.Код_тура) AS Количество
FROM Сотрудники LEFT JOIN Заказы ON Сотрудники.Код_сотрудника=Заказы.Код_сотрудника
WHERE (((Заказы.Дата_оформления) Between [Введите начальную дату:] And [Введите конечную дату:]))
GROUP BY Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество
ORDER BY Count(Заказы.Код_тура) DESC;
p.s. здесь таблицы Сотрудники (в ней код_сотрудника Ф. И. О.) и заказы(в ней код_сотрудника) нужно вывести фио сотрудников с указанием количества заказов за определенный промежуток времени
2 запрос)
SELECT Клиенты.Фамилия, Клиенты.Имя, Клиенты.Отчество, Туры.Страна, Туры.Город
FROM Туры INNER JOIN (Клиенты INNER JOIN заказы ON Клиенты.Код_клиента=заказы.Код_клиента) ON Туры.Код_тура=заказы.Код_тура
WHERE (((Туры.Страна)=[Введите страну])) OR (((Туры.Город)=[Введите город]));
p.s.2 здесь таблицы Клиенты ( в ней поля Код_клиента, Фамилия, Имя, Отчество), заказы (здесь Код_тура, Код_клиента) и Туры (здесь Код_тура, Страна, Город). нужно вывести фио клиентов по названию либо страны, либо города
Отредактированно arxangelvip (12.05.2010 00:25:39)
Неактивен
Неактивен
vasya написал:
SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Отчество, (SELECT count(Заказы.Код_тура) AS Количество FROM Заказы WHERE Сотрудники.Код_сотрудника=Заказы.Код_сотрудника)
FROM Сотрудники
WHERE (((Заказы.Дата_оформления) Between [Введите начальную дату:] And [Введите конечную дату:]))
ORDER BY 4 DESC;
так я пробовал, он выдает пустые строки...
Неактивен
Access это не MySQL
И почему при изменении запроса в форме требуется вводить ещё и Заказы.Дата_оформления для меня загадка.
Неактивен
эх, похоже никто не ответит
Неактивен
На этом форуме — вряд ли (Access действительно сильно отличается от MySQL).
Кроме того — на любом форуме — Вам не ответят, если Вы не будете приводить
полный текст сообщений об ошибках.
Неактивен
так ошибок там и нет, нужно просто inner join заменить на что то или как то убрать. лан все равно спасибо. пойду на другие форумы
Неактивен
INNER JOIN можно легко заменить на запятую. Т.е. следующие два запроса
полностью идентичны:
SELECT … FROM a JOIN b ON a.field = b.otherfield;
SELECT … FROM a, b WHERE a.field = b.otherfield;
С внешними (в Вашем случае — левым) объединениями такая штука, к сожалению,
не работает, т.к. теряются строки, находящиеся только в левой таблице.
Неактивен