Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 21.10.2019
Сообщений: 4
1

Построение отчета с круговой диаграммой в БД без нормализации

22.10.2019, 10:10. Просмотров 2067. Ответов 8


Всем добрый день!
Столкнулась с проблемой, по форуму подобной проблемы не нашла. Есть БД. Схема:
Построение отчета с круговой диаграммой в БД без нормализации

(Нормализация? Не, не слышали!)
Нужно составить отчет (с круговой диаграммой), который будет отражать суммарное количество по каждому товару (по всем продажам) + на диаграмме % соотношение проданных товаров.
Вид:
Товар 1 Товар 2 Товар 3 Товар 4
1000 200 700 150

Круговая диаграмма

Если бы использовалась нормализация таблиц, то тут без проблем бы было. Но как быть в этом случае? Менять структуру БД нельзя.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.10.2019, 10:10
Ответы с готовыми решениями:

Какая разница между диаграммой классов и Entity Relationship диаграммой?
Какая разница между диаграммой классов и диаграммой сущность-связь?

Построение круговой диаграммы и гистограммы
Помогите пожалуйста в следующем

Построение вторичной круговой диаграммы с условиями
Добрый день! Столкнулся со следующей проблемой. Есть таблица в который имеются следующие...

Построение круговой диаграммы успеваемости студентов
Задача звучит так: Создайте программу которая вычерчивала бы круговую диаграмму успеваемости...

8
Эксперт MS Access
16252 / 6714 / 1457
Регистрация: 21.06.2012
Сообщений: 12,393
22.10.2019, 10:26 2
Лучший ответ Сообщение было отмечено ratkina как решение

Решение

Цитата Сообщение от ratkina Посмотреть сообщение
Если бы использовалась нормализация таблиц, то тут без проблем бы было. Но как быть в этом случае?
Сделайте "псевдонормализацию" - запрос
SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT [Код посещения], [Код клиента], [Товар 1] AS Товар
FROM Покупки
UNION ALL
SELECT [Код посещения], [Код клиента], [Товар 2] AS Товар
FROM Покупки
UNION ALL
SELECT [Код посещения], [Код клиента], [Товар 3] AS Товар
FROM Покупки
UNION ALL
SELECT [Код посещения], [Код клиента], [Товар 4] AS Товар
FROM Покупки
и работайте с ним.
1
Эксперт MS Access
6636 / 4232 / 262
Регистрация: 12.08.2011
Сообщений: 12,272
22.10.2019, 10:27 3
Цитата Сообщение от ratkina Посмотреть сообщение
Менять структуру БД нельзя.
Менять структуру БД необходимо! Не повторяйте такое больше никогда и нигде.
1
1 / 1 / 0
Регистрация: 21.10.2019
Сообщений: 4
22.10.2019, 11:00  [ТС] 4
Я-то это знаю. И изначально бы сделала соответствующую структуру. Но задание есть задание

Добавлено через 14 минут
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Сделайте "псевдонормализацию" - запрос
SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT [Код посещения], [Код клиента], [Товар 1] AS Товар
FROM Покупки
UNION ALL
SELECT [Код посещения], [Код клиента], [Товар 2] AS Товар
FROM Покупки
UNION ALL
SELECT [Код посещения], [Код клиента], [Товар 3] AS Товар
FROM Покупки
UNION ALL
SELECT [Код посещения], [Код клиента], [Товар 4] AS Товар
FROM Покупки
и работайте с ним.
А возможно ли через "псевдонормализацию" результат представить в следующем виде:
Наименование товара | Количество
Товар 1 | 1000
Товар 2 | 200
Товар 3 | 700
Товар 4 | 150
?
Как вывести суммарное количество, я поняла. А вот как добавить Наименование товара?
0
Эксперт MS Access
16252 / 6714 / 1457
Регистрация: 21.06.2012
Сообщений: 12,393
22.10.2019, 11:08 5
Цитата Сообщение от ratkina Посмотреть сообщение
А возможно ли через "псевдонормализацию" результат представить в следующем виде:
Наименование товара | Количество
Количества у Вас в таблице не было, а "AS Товар" в запросе замените везде на "AS [Наименование товара]". И на будущее: имена с пробелами в собственно Аксе разрешены, но в SQL придется заключать их в [], а уж какие проблемы в VBA будут ... .
0
1 / 1 / 0
Регистрация: 21.10.2019
Сообщений: 4
22.10.2019, 11:29  [ТС] 6
Цитата Сообщение от ltv_1953 Посмотреть сообщение
Количества у Вас в таблице не было, а "AS Товар" в запросе замените везде на "AS [Наименование товара]". И на будущее: имена с пробелами в собственно Аксе разрешены, но в SQL придется заключать их в [], а уж какие проблемы в VBA будут ... .
Не получается. Поля Товар 1,2,3,4 - числовые (обозначают количество приобретенного товара, т.е. предполагается, что фирма продает только 4 товара). Запрос выводит только суммарное количество - одно поле. Я из исходного убрала поля Код посещения, Код клиента, теперь надо добавить, какая сумма к какому товару относится.
По поводу имен тоже в курсе, но по заданию нужно именно так. И само задание не на столько "углубляется".

Спасибо за помощь!
0
Эксперт MS Access
6636 / 4232 / 262
Регистрация: 12.08.2011
Сообщений: 12,272
22.10.2019, 11:56 7
А покажите нам задание ваше.
0
212 / 16 / 10
Регистрация: 14.05.2015
Сообщений: 32
22.10.2019, 11:59 8
Лучший ответ Сообщение было отмечено ratkina как решение

Решение

Попробуйте
SQL
1
2
3
4
5
6
7
8
9
10
11
 SELECT "Товар 1" AS [Наименование товара], SUM([Товар 1]) AS Количество
FROM Покупки
UNION ALL
SELECT "Товар 2" AS [Наименование товара], SUM([Товар 2]) AS Количество
FROM Покупки
UNION ALL
SELECT "Товар 3" AS [Наименование товара], SUM([Товар 3]) AS Количество
FROM Покупки
UNION ALL
SELECT "Товар 4" AS [Наименование товара], SUM([Товар 4]) AS Количество
FROM Покупки
0
1 / 1 / 0
Регистрация: 21.10.2019
Сообщений: 4
22.10.2019, 12:09  [ТС] 9
Цитата Сообщение от Leo_pard Посмотреть сообщение
Попробуйте
SQL
1
2
3
4
5
6
7
8
9
10
11
 SELECT "Товар 1" AS [Наименование товара], SUM([Товар 1]) AS Количество
FROM Покупки
UNION ALL
SELECT "Товар 2" AS [Наименование товара], SUM([Товар 2]) AS Количество
FROM Покупки
UNION ALL
SELECT "Товар 3" AS [Наименование товара], SUM([Товар 3]) AS Количество
FROM Покупки
UNION ALL
SELECT "Товар 4" AS [Наименование товара], SUM([Товар 4]) AS Количество
FROM Покупки
О Боже! Проблема решена!

Добавлено через 1 минуту
Спасибо большое всем за помощь!!!!
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2019, 12:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Построение круговой диаграммы для нескольких диапазонов
Помогите пожалуйста с кодом для построения круговой диаграммы. Если диапазон непрерывный,...

Список десятичных чисел - построение круговой диаграммы
Тут вроде все расписано, но ничего не понятно. Помогите кто может:) Задание 1. Создать проект...

Построение круговой диаграммы на основе данных из таблицы БД MySQL
Здравствуйте, у меня такая проблема, я начинающий в PHP. Перед мной стоит задача написания кода...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.