| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Составление SQL-запросов > SQL запрос |
| Автор: noober1 21.3.2011, 09:17 |
| Здравствуйте. Напомните пожалуйста как рабоать с датами. Имеется Клиент ++++++++++++++++++++ | id_client | ФИО | ++++++++++++++++++++ | ... | ... | ++++++++++++++++++++ Заказ ++++++++++++++++++++++++++++ | id | id_client | Дата | ++++++++++++++++++++++++++++ | ... | ... | ... | ++++++++++++++++++++++++++++ Нужно: Вывести ФИО клиента который сделал более 2х заказов в марте 2011 года. |
| Автор: ziga 21.3.2011, 09:53 | ||
А база какая ?
|
| Автор: Akina 21.3.2011, 09:59 |
Один из наиболее зависимых от SQL-диалекта вопросов. |
| Автор: noober1 21.3.2011, 11:01 |
| База на Access. ziga, а я что-то и не подумал использовать такие условия для отбора по дате. Я пытался через функцию извленчь из даты месяц и год. |
| Автор: Akina 21.3.2011, 11:16 | ||
Разумнее использовать не два сравнения, а один
|
| Автор: Zloxa 21.3.2011, 11:22 |
я бы предпочел сравнение на строго-меньше первого числа след. месяца. Мне кажется так железобетоннее, вдруйх к дате и время затешется, мало ведь кто констрейнты на датутаму накурчивает, мол только дата. |
| Автор: noober1 21.3.2011, 13:13 |
| А без INNER JOIN можно както сделать, использую обычное соединение? |
| Автор: Zloxa 21.3.2011, 13:15 |
можно, используя кроелированный скалярный подзапрос. Но нужно ли? что не обычного вам кажется в Inner join? |
| Автор: noober1 21.3.2011, 15:11 |
| Zloxa, если не составит труда можете написать этот кроелированный скалярный подзапрос? |
| Автор: Zloxa 21.3.2011, 15:21 |
| Если сможете хоть как-то обосновать необходимость того - пожалуйста. А так - гадостям учить не склонен. |
| Автор: noober1 21.3.2011, 19:20 |
| Попробовал запросик который любезно написал ziga - не работает. Аксес не знайет функцию to_date :( |
| Автор: Akina 21.3.2011, 20:00 |
CDate() |
| Автор: noober1 21.3.2011, 20:17 | ||
Спасибо. Теперь работает, но ругается на
"Не поддерживается выражение объеденения" Не подскажите в чем проблема? |
| Автор: noober1 30.3.2011, 11:34 | ||
| Помогите еще один запросик сделать. Нужно получить ФИО агентов, которые не заказывали Электронику.
Естественно, если один агент заказывал Электронику и другие типы товаров, то данный запрос выводит этого агента. Помогите составить запрос, чтобы он такого агента не выводил. |
| Автор: Zloxa 30.3.2011, 11:51 | ||
|
| Автор: noober1 30.3.2011, 12:41 | ||
Ошибку выдает
|
| Автор: Akina 30.3.2011, 12:53 |
| Не, Аксессовский SQL такое не съест |
| Автор: Zloxa 30.3.2011, 13:19 | ||
|
| Автор: noober1 30.3.2011, 13:29 | ||
Zloxa, блин опять не работает ((
|
| Автор: Akina 30.3.2011, 13:41 |
| noober1, сделай его подзапрос статическим и впиши как источник. |
| Автор: Zloxa 30.3.2011, 13:45 |
![]() |
| Автор: noober1 31.3.2011, 15:45 |
| Сам ступил. действительно работает. спасибо! |
| Автор: noober1 31.3.2011, 17:03 |
| Блин ребят, последний запросик. Сам уже всю голову обламал как сделать. Нужно получить ФИО агентов, которые заказывали товары только одного типа. |
| Автор: Zloxa 31.3.2011, 17:18 |
having count(dsitinct z.type) = 1 Добавлено через 56 секунд вы, кстати, уверены что задачи для акцесса? |
| Автор: noober1 31.3.2011, 17:45 | ||
Да в аксесс.
Пишет что пропущен оператор в выражении запроса count (distinct z.itype) =1 |
| Автор: Zloxa 31.3.2011, 21:05 |
Это же домашка какая то, я правильно понимаю? Задачи на столько типовые, что явно в них видится домашка. Обычно домашние задания предназначены для того чтобы учиться делать правильно. Однако задания, которые вам предложены, в акцессе правильно не делются в силу ограничений платформы. Было бы очень странно, если бы вас изначально учили чесать левое ухо правой рукой через голову. Потому и возникает резонный вопрос, вы действительно используете ту платформу, которая требуется для решения? По существу... У меня дома акцесс не стоит, завтра на работе покумекаю как эта задачка может решаится с учетом ограничений акцесса |