![]() |
|
Модераторы: Akina |
![]()
|
|
| Loser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 17.10.2007 Репутация: нет Всего: нет |
Здраствуйте.
Помогите пожалуйста написать запрос выводящий даные о покупках за послдний месяц, неделю... С MS Access раньше не работал, а вот сейчас нужно написать приложение с его использованием. Нужно ли использовать подзапросы? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
1) Подзапросы не нужны
2) С датами можно работать как с числами - в частности вычитать. Кроме того, есть целый набор функций работы с датами - DateAdd, DateDiff 3) Никого не интересует, работали Вы раньше с Аксессом или нет. Делайте. Читайте справку, книги, е-курсы... и делайте. Мы поможем устранить огрехи и заставить код работать как надо. Но никто не будет делать ЗА ВАС -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Loser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 17.10.2007 Репутация: нет Всего: нет |
Покажите хотябы пример работы функции DateDiff...
Без подзапроса вообще не пойму как это сделать. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
А чем Вас не удовлетворил пример, приведенный во встроенной справке MS Access? по-моему, все вполне доходчиво и понятно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kapbepucm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 993 Регистрация: 14.6.2007 Где: Латвия Репутация: нет Всего: 12 |
В критерии отбора напиши для поля даты >=|начальная дата интересующего периода| And <=|конечная дата интересующего периода|
-------------------- (С) kapbepucm |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Вообще-то существует специальное between ... and ... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Если говорить о нормальном приложении, то этот запрос я бы делал так (варианты):
1. Запрос формировать программно, на основании запроса пользователя. Результат записывал бы в отдельную таблицу. 2. Запрос выбирает все данные. При открытии отчета/формы накладывается фильтр по датам. |
|||
|
||||
| Loser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 17.10.2007 Репутация: нет Всего: нет |
Akina, как я понимаю функции ужно указывать в блоке select?
Вот например запрос выбирающий заказы сегодняшние: select ... from ... where orders and date=(select distinc now() from orders) Или я что то не понимаю? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Вы просто не знаете, похоже, даже основ T-SQL, поэтому пишете синтаксически неверные конструкции. Потратьте пару часов на изучение, и бОльшая часть вопросов отпадет сама собой. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Loser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 28 Регистрация: 17.10.2007 Репутация: нет Всего: нет |
Сделал при помощи DateAdd.
Можете закрыть |
|||
|
||||
| etc |
|
|||
![]() FCZ ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.2.2005 Где: Красногорск Репутация: нет Всего: 3 |
У меня вот тоже маленькая проблема с датами. Делаю Запрос на выборку
И выдает сообщение типа: Недопустимое имя ". Проверьте что оно не содержит не допустимые символы и т.п. Как только эту дату не пытался коверкать, никак не выходит. Как можно решить это? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
А с каких это пор литералы стали брать в квадратные скобки??? есссно движок фигеет, пытаясь найти в таблице [остатки] поле по имени [23.10.2007].
Правильно так:
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Формат даты в предложении SQL (MS Access) #mm/dd/yyyy hh:mm:ss#. Дату в строковом формате движок будет преобразовывать к типу дата. Есть так же спец. фукнции для преобразования к типу дата CDate().
|
|||
|
||||
| etc |
|
|||
![]() FCZ ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.2.2005 Где: Красногорск Репутация: нет Всего: 3 |
Akina, В таком варианте он тоже фигеет.
bopoha, А как можно работать с датой вида 23.10.2007 ? Или как её можно преоброзовать в нужный формат? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
У меня работает - см. аттач. Таблица, запрос в конструкторе и SQL, результат работы запроса. Может, дело-то не в запросе? Присоединённый файл ( Кол-во скачиваний: 23 )
1.GIF 23,10 Kb-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bopoha |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Есть маленький нюанс в предложении WHERE запроса SQL MS Access не делает авто преобразований даты вида "dd.mm.yyyy" при сравнении (помойму, исключение Between ... and ...). В предложении SELECT таких проблем нет.
Например, это не прокатит:
Нужно так:
В функцию, которую вы определили сами, можно передавать все что угодно. Для функций, вызываемых из запроса SQL, рекомендую Variant (т.к. в поле может встретится Null). Внутри функции можно обработать разные варинты и преобразования типов. |
||||
|
|||||
| etc |
|
|||
![]() FCZ ![]() Профиль Группа: Участник Сообщений: 227 Регистрация: 23.2.2005 Где: Красногорск Репутация: нет Всего: 3 |
Akina, Спасибо. Сделал новый запрос с таким видом и все вышло нормально. Может до этого знак какой пропустил.
|
|||
|
||||
| Karam_S |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 11.2.2008 Где: г. Новокузнецк Репутация: нет Всего: нет |
Помогите начинающему user-у.
В Access имеется таблица с данными в формате даты. Создал пользовательский запрос, с условием отображения данных соответствующих <#17.02.2008#. Работает нормально и отображает 12 записей. Вопрос: можно ли это условие указать в другом формате, а именно, чтобы указывалась ссылка на поле даты в другой таблице? Мне нужно, чтобы в запросе отобразились записи, сделанные до определённой даты. Например, я попробовал так: <[Данные о сессии]![Начало сессии] или <DateValue([Данные о сессии]![Начало сессии]) Но в результате появилось окно с запросом на параметры, а если нажмешь ОК, то результат в запросе пустой. |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Вот так вот просто на таблицу ссылаться нельзя.. Нужно выбрать из нее данные подзапросом....
Например, так:
|
|||
|
||||
| Karam_S |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 11.2.2008 Где: г. Новокузнецк Репутация: нет Всего: нет |
По-маленьку стал вникать в SQL.
Одно из моих условий получилось вот так
Спасибо за отклик и подсказку. |
|||
|
||||
| Zorak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 720 Регистрация: 13.11.2007 Репутация: нет Всего: 3 |
Вот я например перечитал всё, что здесь написано, и не понял как сделать (моя лаба, но никак не получится) : нужно определить сегоднящнюю дату, к ней додать 30 дней и получить новую дату, дальше вивести все дати, которие больше етой новой дати....новую дату я определил с помощю Date (), но вот вопрос, ЧТО мне делать с етой датой
P.S. SQL НЕ использовать... -------------------- Знание - сила. А сила есть, ума не надо... Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Kerio |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 7.3.2008 Репутация: нет Всего: нет |
Очень интересно как это можно сделать выборку без SQL. Влюбом случае запрос формируется, будь то ты его набиваешь ручками, или же верстаешь в конструкторе. Вот смотри сюда, если тебе нужен такой результат, то пользуйся, если нет, то видно я просто не понял твоей проблемы, постарайся поточнее описать. datequery.jpg На всякий случай приведу и код:
PS: когда делал "сегодня" было 07.03.2008 Это сообщение отредактировал(а) Kerio - 8.3.2008, 00:11 |
||||
|
|||||
| Zorak |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 720 Регистрация: 13.11.2007 Репутация: нет Всего: 3 |
Ето почти то =), но ето всё моя вина....я не правильно обяснил свою проблему....у мну есть одна таблица и два столбца...так вот, мне нужно прописать в условии, чтоб оно брало дату из одного столбца и приравняло к дате с другого столбца И!! если оно больше на 30 дней, то виводило ету дату.... ![]() мне нужно, чтоб брало дату с "ДатаВзяття" и приравняло с "ДатаПовернення" И!!! если оно больше на 30 дней то виводило его на екран... Это сообщение отредактировал(а) Zorak - 9.3.2008, 16:25 -------------------- Знание - сила. А сила есть, ума не надо... Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло. |
||||||
|
|||||||
| Akina |
|
||||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
| Zorak |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 720 Регистрация: 13.11.2007 Репутация: нет Всего: 3 |
да, всё получилось, спасибо...а знает ли кто какой короткий хороший справочник по всем етим функциям и не только на запросы ??? а то у меня вновь новые проблеми, которие хочю попитаться решить сам...а справочника нормального никак найти не могу....(
-------------------- Знание - сила. А сила есть, ума не надо... Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Тема закрыта. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |