|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
23.05.2009, 14:06 | #1 |
Форумчанин
Регистрация: 11.06.2007
Сообщений: 233
|
Access Запросы
Помгите пожалуйста создать структурированые запросы к БД на Access. Вобщем там о поездах. 1 таблица это информация о поездах. 2ая о продажах билетов на них.
Нужно создать такие запросы: 1. Посчитать сумму прибыли от проданых билетов по дате 2. Выбрать из бд поезда на которые проданые все билеты. ПОмогите пожалуйста написать запросы на языке SQL. Пожалуйста. Файл с создаными таблицами и заполнеными я прикрепил. Вот с запросами засада ((( |
23.05.2009, 15:39 | #2 |
Форумчанин
Регистрация: 05.10.2007
Сообщений: 536
|
вот что я смог сдела. В том запросе что считает сумму за какую-то дату нужно дописать эту дату чтоб полностью работал как надо
rocklistener...
|
23.05.2009, 15:51 | #3 |
Форумчанин
Регистрация: 11.06.2007
Сообщений: 233
|
SELECT Поезда.№поезда
FROM Поезда INNER JOIN Продажи ON Поезда.№поезда=Продажи.№поезда WHERE Поезда.Количествомест=Продажи.Колпр оданбил; Что значит:INNER JOIN Продажи ON Поезда.№поезда=Продажи.№поезда WHERE Поезда.Количествомест=Продажи.Колпр оданбил; Нельзя как то это сделать что б было Select в Select? |
23.05.2009, 15:51 | #4 |
Форумчанин
Регистрация: 11.06.2007
Сообщений: 233
|
Вот отета операция: INNER JOIN
|
24.05.2009, 00:44 | #5 |
Форумчанин
Регистрация: 05.10.2007
Сообщений: 536
|
соединение двух таблиц.
у них общее поле - номер поезда. Вот по нему они и соединяются. http://www.skillz.ru/dev/php/article...NER_OUTER.html http://office.microsoft.com/ru-ru/ac...314871049.aspx
rocklistener...
|
24.05.2009, 01:13 | #6 |
Форумчанин
Регистрация: 11.06.2007
Сообщений: 233
|
А можно как то обойтись без INNER JOIN
|
24.05.2009, 11:07 | #7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
правильный запрос будет такой:
Код:
на 6-й поезд продано 190 билетов (дата продажи - любая) тогда, суммарно на 6-й поезд получается 30+80+190 = 300 и он попадёт в выборку. Последний раз редактировалось Serge_Bliznykov; 24.05.2009 в 11:22. |
24.05.2009, 11:11 | #8 |
Форумчанин
Регистрация: 05.10.2007
Сообщений: 536
|
у меня на работе книжка лежит по SQL. Там, кажется, написано, что такие кострукции (соединения) работают медленнее, чем такие варианты какой написали вы.
ну,думаю,в данном конкретном случае,это значения не имеет из-за размера бд.
rocklistener...
|
24.05.2009, 11:12 | #9 |
Участник клуба
Регистрация: 15.05.2009
Сообщений: 1,222
|
Вариант с where будет работать медленее, так как он сначала делает горизонтальную вырезку, а затем вертикальную. Когда записей в бд мало может это и не заметно, но вот когда количество записей существенное вот тогда начинаются тормоза
Единственное, что ограничивает полет мысли программиста-компилятор
|
24.05.2009, 11:15 | #10 |
Форумчанин
Регистрация: 11.06.2007
Сообщений: 233
|
Можете пожалуйста второй написать как с where потому что разница по времени не важна. Главное сказали что б без INNER JOIN
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Формы, отчёты, запросы в БД Access | Xeon332 | Помощь студентам | 8 | 20.01.2009 12:19 |
Запросы к БД | limon | PHP | 7 | 28.11.2008 20:29 |
Запросы в access | Мария100684 | Microsoft Office Access | 1 | 06.10.2008 15:48 |
запросы в Access | Натали | Microsoft Office Access | 3 | 14.03.2007 11:38 |