Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отображение в отчете всех пунктов таблицы / 9 сообщений из 9, страница 1 из 1
17.08.2016, 21:03
    #39293555
taux
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение в отчете всех пунктов таблицы
Здравствуйте!
Как отобразить в отчете "полноценную" таблицу

Например

таблица

Месяц КоличествоЯнварь 2 человекФевраль 5 человекИюль 3 человекФевраль 7 человек

Надо, чтоб в отчете был полный список с отображением не упомянутых месяцев
Месяц КоличествоЯнварь 2 человекФевраль 12 человекМарт 0 человекАпрель 0 человекМай 0 человекИюнь 0 человекИюль 3 человекАвгуст 0 человекСентябрь 0 человекОктябрь 0 человекНоябрь 0 человекДекабрь 0 человек


Заранее спасибо
...
Рейтинг: 0 / 0
17.08.2016, 21:50
    #39293568
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение в отчете всех пунктов таблицы
taux,
создайте таблицу с перечнем всех месяцев и запрос
Код: vbnet
1.
2.
SELECT месяц.наименование, ВашаТабл.кол, nz([кол],0) AS Выражение1
FROM ВашаТабл RIGHT JOIN месяц ON ВашаТабл.мес = месяц.наименование;
...
Рейтинг: 0 / 0
17.08.2016, 21:52
    #39293570
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение в отчете всех пунктов таблицы
Вдогонку:
...который и будет источником запроса
...
Рейтинг: 0 / 0
17.08.2016, 21:55
    #39293572
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение в отчете всех пунктов таблицы
прошу пардон-отчета
...
Рейтинг: 0 / 0
18.08.2016, 09:20
    #39293698
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение в отчете всех пунктов таблицы
taux,

Во-первых, заголовок темы неверный - "Отображение в отчете всех пунктов таблицы".
Не "...всех пунктов таблицы", а "...того, чего нет в таблице".)))

Во-вторых, если там действительно не дата, а месяц, то это поле должно быть числовым,
содержащим порядковый номер месяца, а не текст с названием месяца.
Иначе как отсортируете месяцы в правильном порядке?

Таким образом, если Месяц - число, то вот запрос,
дающий помесячные суммы по всем месяцам года.
Код: 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.
SELECT Choose(T2.M,"Январь","Февраль","Март","Апрель","Май","Июнь",
                   "Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь") AS Месяц, 
       IIf(S Is Null,0,S) AS Количество
FROM 
   (SELECT Месяц AS M,
           Sum(Количество) AS S
    FROM Таблица
    GROUP BY Месяц) AS T1 
RIGHT JOIN 
   (SELECT TOP 1 1 AS M FROM Таблица
    UNION All 
    SELECT TOP 1 2 FROM Таблица
    UNION All
    SELECT TOP 1 3 FROM Таблица
    UNION All
    SELECT TOP 1 4 FROM Таблица
    UNION All
    SELECT TOP 1 5 FROM Таблица
    UNION All
    SELECT TOP 1 6 FROM Таблица
    UNION All
    SELECT TOP 1 7 FROM Таблица
    UNION All
    SELECT TOP 1 8 FROM Таблица
    UNION ALL 
    SELECT TOP 1 9 FROM Таблица
    UNION All
    SELECT TOP 1 10 FROM Таблица
    UNION All
    SELECT TOP 1 11 FROM Таблица
    UNION ALL 
    SELECT TOP 1 12 FROM Таблица) AS T2 
ON T1.M=T2.M
ORDER BY T2.M;

Если же в таблице даты, то выделенный желтым фрагмент будет таким
Код: sql
1.
2.
3.
4.
   (SELECT Month(Дата) AS M,
           Sum(Количество) AS S
    FROM Таблица
    GROUP BY Month(Дата)) AS T1 
...
Рейтинг: 0 / 0
18.08.2016, 10:02
    #39293721
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение в отчете всех пунктов таблицы
Если же принять, что Месяц остается текстовым,
то запрос становится таким
Код: 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.
SELECT T2.MN AS Месяц, 
       IIf(S Is Null,0,S) AS Количество
FROM 
   (SELECT Месяц AS M,
           Sum(Количество) AS S
    FROM Таблица
    GROUP BY Месяц) AS T1 
RIGHT JOIN 
   (SELECT TOP 1 1 AS M, "Январь" AS MN FROM Таблица
    UNION All 
    SELECT TOP 1 2, "Февраль" FROM Таблица
    UNION All
    SELECT TOP 1 3, "Март" FROM Таблица
    UNION All
    SELECT TOP 1 4, "Апрель" FROM Таблица
    UNION All
    SELECT TOP 1 5, "Май" FROM Таблица
    UNION All
    SELECT TOP 1 6, "Июнь" FROM Таблица
    UNION All
    SELECT TOP 1 7, "Июль" FROM Таблица
    UNION All
    SELECT TOP 1 8, "Август" FROM Таблица
    UNION ALL 
    SELECT TOP 1 9, "Сентябрь" FROM Таблица
    UNION All
    SELECT TOP 1 10, "Октябрь" FROM Таблица
    UNION All
    SELECT TOP 1 11, "Ноябрь" FROM Таблица
    UNION ALL 
    SELECT TOP 1 12, "Декабрь" FROM Таблица) AS T2 
ON T1.M=T2.MN
ORDER BY T2.M;
...
Рейтинг: 0 / 0
18.08.2016, 10:59
    #39293763
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение в отчете всех пунктов таблицы
__Michelle
Код: sql
1.
2.
SELECT Choose(T2.M,"Январь","Февраль","Март","Апрель","Май","Июнь",
                   "Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь") AS Месяц, 

Код: vbnet
1.
2.
3.
4.
5.
?MonthName(1)
Январь

?MonthName(1,True)
янв
...
Рейтинг: 0 / 0
18.08.2016, 11:08
    #39293772
__Michelle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение в отчете всех пунктов таблицы
Панург,

Ой..
Нервно хихикаю...)))

Спасибо! Буду знать.
...
Рейтинг: 0 / 0
18.08.2016, 11:45
    #39293809
taux
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отображение в отчете всех пунктов таблицы
Всем БОООЛЬШОЕ СПАСИБО!!!!
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Отображение в отчете всех пунктов таблицы / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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