powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сгрупировать значения? Кто может помогите, Плиз
11 сообщений из 11, страница 1 из 1
Как сгрупировать значения? Кто может помогите, Плиз
    #36006815
reverdatto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существует таблица с данными файло прилогаю
Нужно получить отчет вида:

Интервал A00-09 равен 13 дней
A10-20 равен 1 дней
B00-09 равен 9 дней
B10-20 равен 4 дней

Итого A равен 14 дней
B равен 13 дней

Как это сделать помогите кто может!
...
Рейтинг: 0 / 0
Как сгрупировать значения? Кто может помогите, Плиз
    #36006984
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Со вспомогательной таблицей Интервалы, решение (запрос) будет таким
Код: plaintext
1.
2.
SELECT t.ШифрБуква & i.Название as Наименование, sum(t.Дни) as СуммаДней
FROM Таблица t inner join Интервалы i on t.ШифрЦифра>=i.От and  t.ШифрЦифра<=i.До
group by t.ШифрБуква & i.Название
Общую сумму по всем A и В уместно посчитать в самом отчете


Можно, конечно, сделать и без таблицы Интервалы. Этот запрос строится с конструкцией Union. Но в этом случае запрос будет сильно зависеть от количества интервалов и его надо будет переделывать (или сделать один гиганский запрос на все случаи жизни)
...
Рейтинг: 0 / 0
Как сгрупировать значения? Кто может помогите, Плиз
    #36007256
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT ШифрБуква, Partition(ШифрЦифра, 0 , 100 , 10 ) AS Range, Sum(Дни) AS SumDays
FROM Таблица
GROUP BY ШифрБуква, Partition(ШифрЦифра, 0 , 100 , 10 )
UNION ALL 
SELECT ШифрБуква, "Итого:", Sum(Дни)
FROM Таблица
GROUP BY ШифрБуква, "Итого:"
ORDER BY  1 ,  2 ;
почему-то не все функции в VBA одинаково популярны :)
...
Рейтинг: 0 / 0
Как сгрупировать значения? Кто может помогите, Плиз
    #36007423
reverdatto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое что откликнились, но толи я обяснял хреново толи вы меня не поняли посмотрите прикрепленный файл там есть исходная таблица "Табица" а результат должен получиться похожим на содержимое таблицы "Интервалы"
...
Рейтинг: 0 / 0
Как сгрупировать значения? Кто может помогите, Плиз
    #36007425
reverdatto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извените забыл прикрепить
...
Рейтинг: 0 / 0
Как сгрупировать значения? Кто может помогите, Плиз
    #36007586
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reverdattoрезультат должен получиться похожим на содержимое таблицы "Интервалы"Вам форматирование выводимых данных чтоль не понравилось?
ну так подойдите к задаче творчески :) как-то так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT  Replace(Replace(Replace(ШифрБуква & Partition(ШифрЦифра, 0 , 100 , 10 ), "  0:", " 00:" ),": " , "-") , "- ", "-0") AS Range, Sum(Дни) AS SumDays
FROM Таблица
GROUP BY  Replace(Replace(Replace(ШифрБуква & Partition(ШифрЦифра, 0 , 100 , 10 ), "  0:", " 00:" ),": " , "-") , "- ", "-0") 
UNION ALL 
SELECT ШифрБуква & " Итого:", Sum(Дни)
FROM Таблица
GROUP BY ШифрБуква & " Итого:"
ORDER BY  1 ,  2 ;
ЗЫ а строки с итогами по букве уже не нужны стали ? тогда выкиньте 2ую часть начиная с UNION ALL
...
Рейтинг: 0 / 0
Как сгрупировать значения? Кто может помогите, Плиз
    #36007636
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwrqwrпочему-то не все функции в VBA одинаково популярны :)
О Partition. Она неудобна в большинстве случаев своими фиксированными по ширине интервалами. Слава богу, что хоть есть открытые начальный и конечный интервалы, но все равно, слишком часто приходится работать с неравными интервалами и благополучно забыть о Partition.
...
Рейтинг: 0 / 0
Как сгрупировать значения? Кто может помогите, Плиз
    #36007654
Фотография qwrqwr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mds_worldО Partition. Она неудобна...согласен полностью, но тут она внезапно пригодилась
...
Рейтинг: 0 / 0
Как сгрупировать значения? Кто может помогите, Плиз
    #36009344
reverdatto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, форматирование мне понравилось все как бы неплохо но у меня интервалы групировки в "AA00-09" а в "B00-06" разные и будет еще "C" и "D" и тд. до "T" и все разные
...
Рейтинг: 0 / 0
Как сгрупировать значения? Кто может помогите, Плиз
    #36009363
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
reverdattoГоспода, форматирование мне понравилось все как бы неплохо но у меня интервалы групировки в "AA00-09" а в "B00-06" разные и будет еще "C" и "D" и тд. до "T" и все разные
Если в приведенную мной таблицы Интервалы добавить поле ШифрБуква и немного изменить запрос, то будут интервалы разные для любой буквы
Код: plaintext
1.
2.
SELECT t.ШифрБуква & i.Название as Наименование, sum(t.Дни) as СуммаДней
FROM Таблица t inner join Интервалы i on t.ШифрЦифра>=i.От and  t.ШифрЦифра<=i.До and t.ШифрБуква=i.ШифрБуква
group by t.ШифрБуква & i.Название
...
Рейтинг: 0 / 0
Как сгрупировать значения? Кто может помогите, Плиз
    #36014455
reverdatto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем БОЛЬШОЕ!!!! за помощь
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как сгрупировать значения? Кто может помогите, Плиз
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]