Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
14 / 13 / 1
Регистрация: 17.04.2023
Сообщений: 107

Создание функции для расчета нарастающих итогов

09.08.2023, 07:29. Показов 1732. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите пожалуйста каким образом правильно написать запрос, чтобы с помощью него корректно рассчитывались нарастающие итоги за месяц, квартал и год.
Исходные данные: таблица "Продукция" с 3 столбцами "Дата", "Продукт1", "Продукт2". В столбце "Дата" указывается дата с шагом 1 сутки. В столбцах "Продукт1", "Продукт2" количество этих продуктов за сутки соответственно.
Требуется создание функции, с 2-мя входными параметрами (дата и наименование параметра), которая бы выводила следующие данные:
1. Выбранная дата.
2. Количество выбранного продукта за эту дату (за сутки). Например за 10.06.2023.
3. Нарастающий итог по количеству выбранного продукта с начала месяца (то есть с 01.06.2023 по 10.06.2023 включительно).
4. Нарастающий итог по количеству выбранного продукта с начала квартала (то есть с 01.04.2023 по 10.06.2023 включительно).
5. Нарастающий итог по количеству выбранного продукта с начала года (то есть с 01.01.2023 по 10.06.2023 включительно).

Во вложении архив бэкапа БД с таблицей "Продукция" и созданной функцией, которая выдает все требуемые данные со требуемые входными параметрами, но не считает нарастающие итоги (нарастающие итоги всегда равны между собой и равны количеству выбранного продукта за выбранную дату). То есть по факту нарастающие итоги ни по одному периоду не считаются.
Запрос на создание функции:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
CREATE FUNCTION get_product_data (@DATE DATE, @product_name VARCHAR(50))
RETURNS @temp_table TABLE (
    chosen_date DATE,
    chosen_product_quantity INT,
    month_to_date INT,
    quarter_to_date INT,
    year_to_date INT
)
AS
BEGIN
    DECLARE @start_of_month DATE, @start_of_quarter DATE, @start_of_year DATE;
    SET @start_of_month = DATEFROMPARTS(YEAR(@DATE), MONTH(@DATE), 1);
    SET @start_of_quarter = DATEADD(QQ, DATEDIFF(QQ, 0, @DATE), 0);
    SET @start_of_year = DATEFROMPARTS(YEAR(@DATE), 1, 1);
 
    INSERT INTO @temp_table (chosen_date, chosen_product_quantity, month_to_date, quarter_to_date, year_to_date)
    SELECT 
        [Дата],
        CASE 
            WHEN @product_name = 'Продукт1' THEN [Продукт1]
            WHEN @product_name = 'Продукт2' THEN [Продукт2]
        END,
        SUM(CASE 
            WHEN @product_name = 'Продукт1' THEN [Продукт1]
            WHEN @product_name = 'Продукт2' THEN [Продукт2]
        END) OVER (PARTITION BY YEAR([Дата]), MONTH([Дата]) ORDER BY [Дата]),
        SUM(CASE 
            WHEN @product_name = 'Продукт1' THEN [Продукт1]
            WHEN @product_name = 'Продукт2' THEN [Продукт2]
        END) OVER (PARTITION BY YEAR([Дата]), DATEPART(QQ, [Дата]) ORDER BY [Дата]),
        SUM(CASE 
            WHEN @product_name = 'Продукт1' THEN [Продукт1]
            WHEN @product_name = 'Продукт2' THEN [Продукт2]
        END) OVER (PARTITION BY YEAR([Дата]) ORDER BY [Дата])
    FROM Продукция
    WHERE [Дата] = @DATE;
 
    RETURN;
END;
Вложения
Тип файла: rar TREN.rar (124.7 Кб, 0 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.08.2023, 07:29
Ответы с готовыми решениями:

Создание собственной функции для расчёта минимума из массива чисел
Господа, помогите начинающему программисту, пожалуйста! "Даны натуральные числа m, n и целые числа A1,...,An,; B1,...,Bm; C1,...,...

Создание функции расчета зависимых величин [язык R]
Здравствуйте, прошу помощи и направления для написания функции на языке R по следующему условию Создать функцию, которая рассчитывает...

excel. создать таблицу значение кусочно-непрерывной функции y на интервале [xmin; xmax] с шагом h, для расчета функции y используя логические функции

28
14 / 13 / 1
Регистрация: 17.04.2023
Сообщений: 107
10.08.2023, 11:55  [ТС]
Студворк — интернет-сервис помощи студентам
qwertehok, так я никого и не заставляю, нет так нет. зачем мне писать что-то в ответ, не относящее к сути вопроса, если можно ничего не писать? раздел фриланс мне не нужен, так как это явно не тот уровень сложности задачи, за решение которой нужно что-то кому-то платить.
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
10.08.2023, 16:49
Лучший ответ Сообщение было отмечено andrey197888888 как решение

Решение

Цитата Сообщение от andrey197888888 Посмотреть сообщение
решил с помощью ИИ

Не по теме:

правильным путем отправилсо. больше бы таких спецов
если только ты сам не ИИ

1
14 / 13 / 1
Регистрация: 17.04.2023
Сообщений: 107
10.08.2023, 16:56  [ТС]
pincet, спасибо за поддержку. Готовое решение буквально за 5 секунд, без всякой лишней возни и препираний, обсуждений кто кому, что должен и за что. И самое главное - абсолютно бесплатно ИИ рулит
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
10.08.2023, 16:59
andrey197888888,

Не по теме:


dude, are you able to feel some sarcasm?



Добавлено через 50 секунд

Не по теме:

AI doesn't rule

0
14 / 13 / 1
Регистрация: 17.04.2023
Сообщений: 107
10.08.2023, 17:02  [ТС]
pincet, я то чувствую Но это реальность больше, чем сарказм. ИИ с тривиальными задачами справляется лучше, быстрее и бесплатно. Большинство программистов, аналитиков вскоре заменит ИИ с более высокой эффективностью. И это радует.
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
10.08.2023, 17:04
Цитата Сообщение от andrey197888888 Посмотреть сообщение
ИИ с тривиальными задачами справляется лучше, быстрее и беззатратно.
и потом нужно выносить моск на форумах - что не так с ИИ?
задай такой похожий вопрос на stackexchange - рискни
0
14 / 13 / 1
Регистрация: 17.04.2023
Сообщений: 107
10.08.2023, 17:09  [ТС]
pincet, задам, где угодно и кому угодно. Потроллить всегда рад
0
 Аватар для pincet
1655 / 1154 / 173
Регистрация: 23.07.2010
Сообщений: 6,914
10.08.2023, 17:13

Не по теме:

go ahead and do ur best



Добавлено через 2 минуты

Не по теме:

модераторы - вычищайте всю эту непотребщину

0
14 / 13 / 1
Регистрация: 17.04.2023
Сообщений: 107
10.08.2023, 18:04  [ТС]
pincet, зачем ты все это пишешь? Я то прикалываюсь тут с людей с ЧСВ просто. Помочь не помогут, но понапишут кучу ненужной херунды Сарказм чувствуешь или нет?

Добавлено через 46 минут
Аватар, кстати норм челик. Со своими тараканами конечно, но тем не менее, без лишних вопросов и занудства дал приемлемое решение. Там осталось допилить маленько только
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.08.2023, 18:04

Создание Итогов в Excel
В Excel есть команда ИТОГИ , которая формирует промежуточные итоги, позволяет скрывать и раскрывать список. Есть ли возможность...

Построить и визуализировать график функции. Для расчета значения функции использовать математический сопроцессор
Построить и визуализировать график функции. Для расчета значения функции использовать математический сопроцессор. Должны быть также...

Создание Сторно В Регистре Расчета С Таким Же Видом Расчета
Как в регистре расчета 1С8.2 создать сторно с таким же видом расчета.В 1С 7.7 это происходит автоматом при вводе записи.Через...

Создание конфигуратора для создания формул расчёта
Здравствуйте. Подскажите пожалуйста как можно реализовать ниже описанное, уже весь мозг изломал не могу придумать как такое сделать. ...

Создание приложений для расчета экономических показателей
Задание Из отходов производства предприятие может организовать вы¬пуск четырех видов продукции. Для этого оно планирует использо¬вать два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru