|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 57
|
|
РАБДЕНЬ ЧИСТРАБДНИ в ACCESS21.11.2014, 22:33. Показов 7743. Ответов 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,217
|
|
| 21.11.2014, 22:43 | |
|
manager777, то что вы написали хорошо, но не хватает вашего примера. прочитав, не много ясно, в если бы был пример, то было бы еще яснее. и самое главное: на нем бы и показали.
1
|
|
|
9118 / 6101 / 591
Регистрация: 27.03.2013
Сообщений: 19,918
|
|
| 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 / 6101 / 591
Регистрация: 27.03.2013
Сообщений: 19,918
|
|
| 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 / 6101 / 591
Регистрация: 27.03.2013
Сообщений: 19,918
|
|
| 21.11.2014, 23:45 | |
|
Щас попробую набросать.
1
|
|
|
9118 / 6101 / 591
Регистрация: 27.03.2013
Сообщений: 19,918
|
|
| 22.11.2014, 00:18 | |
|
Ну вот как то так.
1
|
|
|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 57
|
|
| 22.11.2014, 00:40 [ТС] | |
|
kmv-puh, Ну конечно спасибо, однако необходимо выполнить запрос и получить таблицу с дополнительными ячейками с просчитанными значениями РАБДЕНЬ и пр...
Ну как то неудобно анализировать таким образом (ваш вариант) около миллиона строк))) Поэтому просто таблица на выходе нужна.. просто таблица. СМ. первый пост.
0
|
|
|
26824 / 14504 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 22.11.2014, 02:47 | |
|
manager777, смотрите вложение. В нем 2 запроса, построенные на импортированной с ексель-файла таблице Лист1. Запрос "Срок реализации" отвечает на 2 первых Ваших вопроса о сроке реализации и количестве оставшихся рабочих дней. Запрос "СамаяРанняяДатаПродажи" это Ваш третий вопрос.
У Вас были ошибки в подсчетах даты реализации и, соответственно всего остального. В частности за август не 165, а 164 рабдня. Это за счет того, что неверно определялось (не по Вашему же алгоритму) дата как Месяц-1 и отнять 4 рабдня. В каких-то еще месяцах были ошибки. Но примененный алгоритм никак не учитывает государственные праздники и корпоративные выходные. Это можно учесть только специальной таблицей типа календаря. Пример такой таблицы приведен.
1
|
|
|
26824 / 14504 / 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
|
|
|
26824 / 14504 / 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
|
|
|
26824 / 14504 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||
| 22.11.2014, 13:33 | ||
|
1
|
||
|
9118 / 6101 / 591
Регистрация: 27.03.2013
Сообщений: 19,918
|
|
| 22.11.2014, 14:15 | |
|
Я так и знал. что это заразно, вот здесь - РАБДЕНЬ ЧИСТРАБДНИ в ACCESS - Андрэич как и - commun (в некоторых темах) - отвечает в темах как и дедушка Ленин находжясь в ссылке - типа молоком, скрытно (типа шифровано и Конспиративно)
![]() Добавлено через 2 минуты Если это так и продолжится, то я наверное свою Балладу не дописю, скорее всего умру от смеха.
0
|
|
|
0 / 0 / 0
Регистрация: 21.11.2014
Сообщений: 57
|
|
| 22.11.2014, 20:43 [ТС] | |
|
0
|
|
|
26824 / 14504 / 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? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
||||
|
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений
Всем привет. А вот мой компьютер, переделанный из ноутбука.
Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
|
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
|
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца:
Хочу еще Симбу взять, очень нравится. . .
|
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
|
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
|
|
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
|
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
|
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
|
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7
Чтобы решить задачу, использовал интернет:
поисковики Google и Yandex, а также подсказки Deep Seek.
Как оказалось, чтобы создать. . .
|
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
|