|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 57
|
|
РАБДЕНЬ ЧИСТРАБДНИ в ACCESS21.11.2014, 22:33. Показов 7802. Ответов 57
Метки нет (Все метки)
Всем привет!
Столкнулся с проблемой: Не смог найти в интернете способ реализации следующего функционала доступного в Excel: 1) Как реализовать запрос c функционалом РАБДЕНЬ К примеру в строке имеется срок годности товара и необходимо вычислить крайнюю дату продажи товара, а это случится за 4 рабочих дня до последнего рабочего дня месяца, предыдущего указанному в строке. Я использовал следующую формулу: =РАБДЕНЬ(КОНМЕСЯЦА(ДАТА(d2;c2;1);-1);-4;{39448;39814}) Поясню на примере: имеем строку: 20140103|Тип1|2|2014|50 Т.е. расшифровка строки: дата очередной продажи товара 2014 01 03 (3е января) Тип товара: Тип1 Месяц в котором заканчивается срок годности: 2 (февраль) Год, в котором заканчивается срок годности: 2014г. Цена товара 50 Необходимо так же учесть праздничные дни в году, для примера оставил 2 значения.. В конечном итоге получаю значение СРОК РЕАЛИЗАЦИИ: 27.01.2013 А в строке появится дополнительный столбец СРОК РЕАЛИЗАЦИИ, добавится ячейка со значением 27.01.2014 и строка примет следующий вид: |20140104|Тип1|2|2014|50|27.01.2014| 2) Функционал ЧИСТРАБНИ Необходимо найти количество оставшихся рабочих дней до СРОКА РЕАЛИЗАЦИИ: Т.е. в Excel я пользовался формулой =ЧИСТРАБДНИ(ДАТА(ПСТР(A2;1;4);ПСТР(A2;5; 2);ПСТР(A2;7;2));G2;{39448;39814}) Дело в том, что дата идет в формате ГГГГММДД во всех строках, поэтому необходимо включить в код функционал ПСТР. Так же необходимо учесть праздничные дни. Имею на входе уже обновленную строку: |20140104|Тип1|2|2014|50|27.01.2014| После вычисления должна добавиться запись: |20140104|Тип1|2|2014|50|27.01.2014|16| Т.е. разница между 27.01 и 04.01, с учетом праздников и выходных, составляет 16 рабочих дней. По вышеуказанным вопросам: в Excel я просто протягивал рамку - и ячейки сами заполнялись необходимыми значениями. 3) Ну и наверное самый главный вопрос: Имеются уже вычисленные значения (27.01 и 16), необходимо узнать самую раннюю дату продажи, т.е. самое минимальное значение ДАТА для связки ТИП+МЕС+ГОД+ЦЕНА. Вот это я не смог реализовать в ни в Excel, ни через Access (имеется ввиду пытался использовать select, однако выдает просто самую 1ю дату). Буду очень признателен за ответы!
0
|
|
| 21.11.2014, 22:33 | |
|
Ответы с готовыми решениями:
57
Реализация собственной функции Excel РАБДЕНЬ на языке 1с Как скопировать данные из таблицы одной БД Access в такую же таблицу БД Access другой БД Access? Нужно ли устанавливать Access 2003, если в Access 2016 итак возможно разрабатывать БД в формате Access 2003? |
|
2835 / 1377 / 215
Регистрация: 13.05.2011
Сообщений: 4,219
|
|
| 21.11.2014, 22:43 | |
|
manager777, то что вы написали хорошо, но не хватает вашего примера. прочитав, не много ясно, в если бы был пример, то было бы еще яснее. и самое главное: на нем бы и показали.
1
|
|
|
9118 / 6107 / 591
Регистрация: 27.03.2013
Сообщений: 19,919
|
|
| 21.11.2014, 22:47 | |
|
Ну по идее то и по здравому размышлению, праздничные дни не должны учитываться.
Если у товара срок годности заканчивается к примеру 10 мая, а ваша контора 9 и 10 мая не работает. т. к. это праздничные дни, то если его не продали в рабочийе дни, максимум 8 мая, то это уже будет просроченый, типа - ТУХЛЫЙ товар, могуций причинить вред здоровью.. По закону это если вкратце то как то так. Вы или покупайте у производителя товар выпущенный 11 марта или выбрасывайте его на помойку. Компромисов кажется по данному вопросу нет, по крайней мере в России.
0
|
|
|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 57
|
|
| 21.11.2014, 23:10 [ТС] | |
|
Не вопрос)
http://download.files.namba.net/files/65856831 Добавлено через 5 минут "Ну по идее то и по здравому размышлению.... " Так то да - с вами полностью согласен) Тем не менее свою задачу я достаточно четко раскрыл и жду помощи в реализации хоть по какому нибудь вопросу. Как говаривал один опытный программист: Без внятного ТЗ - результат будет ХЗ
0
|
|
|
9118 / 6107 / 591
Регистрация: 27.03.2013
Сообщений: 19,919
|
|
| 21.11.2014, 23:30 | |
|
В своем задании вы ссылаетесь на возможности - Excel, а это раздел - Access, тут малость немного все по другому делается, типа раз в 5 более трудозатратно.
Создание таблиц, форм, запросов. процедур довольно больше времени занимает чем в Excel, по этому желательно выкладывать пример с примерно введенными данными, а то вам сделают пример затратив на это несколько часов, а вы скажите, а у меня немного по другому, сделайте теперь на моем примере. Это я к тому, что очень редко кто без примера будет прмер делать, чтоб потом еще и повторно переделывать.
0
|
|
|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 57
|
|
| 21.11.2014, 23:36 [ТС] | |
|
kmv-puh, Я ВООБЩЕТО СКИНУЛ УЖЕ ПРИМЕР В EXCEL.
Для меня не важно прямо полное соответствие ожиданиям - хотя бы общий принцип, если что сам допишу, что потребуется, хоть сам 2й день в аксесс всего))
0
|
|
|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 57
|
|
| 21.11.2014, 23:39 [ТС] | |
|
kmv-puh, Вот наконец то получилось найти как прикреплять файл)
0
|
|
|
9118 / 6107 / 591
Регистрация: 27.03.2013
Сообщений: 19,919
|
|
| 21.11.2014, 23:45 | |
|
Щас попробую набросать.
1
|
|
|
9118 / 6107 / 591
Регистрация: 27.03.2013
Сообщений: 19,919
|
|
| 22.11.2014, 00:18 | |
|
Ну вот как то так.
1
|
|
|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 57
|
|
| 22.11.2014, 00:40 [ТС] | |
|
kmv-puh, Ну конечно спасибо, однако необходимо выполнить запрос и получить таблицу с дополнительными ячейками с просчитанными значениями РАБДЕНЬ и пр...
Ну как то неудобно анализировать таким образом (ваш вариант) около миллиона строк))) Поэтому просто таблица на выходе нужна.. просто таблица. СМ. первый пост.
0
|
|
|
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 22.11.2014, 02:47 | |
|
manager777, смотрите вложение. В нем 2 запроса, построенные на импортированной с ексель-файла таблице Лист1. Запрос "Срок реализации" отвечает на 2 первых Ваших вопроса о сроке реализации и количестве оставшихся рабочих дней. Запрос "СамаяРанняяДатаПродажи" это Ваш третий вопрос.
У Вас были ошибки в подсчетах даты реализации и, соответственно всего остального. В частности за август не 165, а 164 рабдня. Это за счет того, что неверно определялось (не по Вашему же алгоритму) дата как Месяц-1 и отнять 4 рабдня. В каких-то еще месяцах были ошибки. Но примененный алгоритм никак не учитывает государственные праздники и корпоративные выходные. Это можно учесть только специальной таблицей типа календаря. Пример такой таблицы приведен.
1
|
|
|
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||
| 22.11.2014, 03:12 | |||||||
Сообщение было отмечено manager777 как решение
Решение
Возможно сделал ошибку в запросе на самую ранню цену. У Вас условие
1
|
|||||||
|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 57
|
|
| 22.11.2014, 05:10 [ТС] | |
|
mobile, спасибо,я ознакомлюсь через часов 6)
По поводу праздников: в екселе применялся массив ;{более 100 дат по различным годам}), поэтому оставил для наглядности только 2-3 штуки, Соответственно расхождения имеют место быть. Загрузив массив праздников на TYPE9 например у меня получается 159 дней. Отсюда вытекает вопрос как можно включить в код SQL запроса следующий массив дат: {39448;39814;40179;40544;40909;41275;416 40;42005;42370:39468;39832;40196;40560;4 0924;41295;41659;42023;42387:39496;39860 ;40231;40595;40959;41323;41687;42051;424 22:39528;39913;40270;40655;41005;41362;4 1747;41732;42489:39594;39958;40329;40693 ;41057;41421;41785;42149;42520:39633;399 98;40363;40728;41094;41459;41824;42189;4 2555:39692;40063;40427;40791;41155;41519 ;41883;42254;42618:39734;40098;40462;408 26;41190;41561;41925;42289;42653:39763;4 0128;40493;40858;41224;41589;41954;42319 ;42685:39779;40143;40507;40871;41235;416 06;41970;42334;42698:39807;40172;40537;4 0902;41268;41633;41998;42363;42729} И соответственно при беглом взгляде на ваше решение в SQL может несколько поменяться алгоритм вычисления... Если нужно массив переделаю в какой нибудь другой вид. Делать запросы и крутить код попробую часов через 6. Добавлено через 2 минуты Но можно с уверенностью сказать, что на % 70 я получил ответы - это вдохновляет
0
|
|
|
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
|
|
| 22.11.2014, 13:16 | |
|
0
|
|
|
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 22.11.2014, 13:23 | ||||||
|
Андрэич, это и есть даты. Например первое из чисел - 39448 это
1
|
||||||
|
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
|
|
| 22.11.2014, 13:28 | |
|
mobile, спсб, понял: это даты в "оригинальном" их числовом типе-виде...
0
|
|
|
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||
| 22.11.2014, 13:33 | ||
|
1
|
||
|
9118 / 6107 / 591
Регистрация: 27.03.2013
Сообщений: 19,919
|
|
| 22.11.2014, 14:15 | |
|
Я так и знал. что это заразно, вот здесь - РАБДЕНЬ ЧИСТРАБДНИ в ACCESS - Андрэич как и - commun (в некоторых темах) - отвечает в темах как и дедушка Ленин находжясь в ссылке - типа молоком, скрытно (типа шифровано и Конспиративно)
![]() Добавлено через 2 минуты Если это так и продолжится, то я наверное свою Балладу не дописю, скорее всего умру от смеха.
0
|
|
|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 57
|
|
| 22.11.2014, 20:43 [ТС] | |
|
0
|
|
|
26825 / 14505 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||
| 22.11.2014, 22:12 | ||
Сообщение было отмечено manager777 как решение
РешениеПодготовил вариант с таблицей-календарем. Внедрил в нее перечисленные Вами выходные дни с помощью процедуры addFreeDay из Module1. Создал запрос "Срок реализацииКаленд" в котором учитываются Ваши выходные. Расчет срока реализации и оставшихся дней делаются в функции getAllDate также из модуля1. Эта функция применена в запросе "Срок реализацииКаленд". Таблица Kalendar0 та же таблица-календарь, но без Ваших выходных.
1
|
||
| 22.11.2014, 22:12 | |
|
Помогаю со студенческими работами здесь
20
Переписывание файла adp под Access 2007 или Access 2010 VkApi (vk_api.exceptions.ApiError: [15] Access denied: no access to call this method) Создание БД Access, используя VB-команду Select Microsoft Access Database to Create Код VBA в Access 2010 работает, в Access 2007 выдает ошибку Чем можно заменить тип вычисляемый (Access 2007) в Access 2002? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1
У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\
А в самом низу файла-профиля. . .
|