powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нормализация кросс-таблицы
6 сообщений из 6, страница 1 из 1
Нормализация кросс-таблицы
    #38176703
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайт всё же попробуем решить именно задачу приведения матричной формы к нормальной. То, что обсуждалось, но нормально не решилось .
Задача: Мы имеем в качестве исходника именно и только кросс-таблицу, причём в некоем столбце (обычно - первом) находятся первые ключевые данные, в первых строках (обычно - одной) находятся вторые ключевые данные, а в остальных ячейках матрицы (в большинстве случаев - текстовых) - сами данные.
Результат: Как можно более просто получить нормальную таблицу из трех полей (строка/столбец/значение) с описанием матрицы. В качестве бонуса - получить три таблицы: описание матрицы (код строки/код столбца/значение) и два справочника (строка/столбец) со связками код/значение...
...
Рейтинг: 0 / 0
Нормализация кросс-таблицы
    #38176842
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Берем табличку, перегоняем в эксель, делаем там сводную таблицу. :)
...
Рейтинг: 0 / 0
Нормализация кросс-таблицы
    #38176848
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Странно... Из сводной делать нечто сводное Я был лучшего мнения о твоих умственных способностях, даже в семь утра по МСК.

Повторюсь - надо из сводной сделать нормальную таблицу. Нормальную - это нормализованную. И безо всяких COM и ADO.
...
Рейтинг: 0 / 0
Нормализация кросс-таблицы
    #38176854
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM Dima T,

Странно... Из сводной делать нечто сводное
Упс ..., невнимательно ТЗ прочитал. :)

В обратную сторону редко нужная задача и достаточно легко решаемая.
Алгоритм:
1. Делаем курсор для результата: ID заголовка, ID строки, Значение. Таблицу заголовков (ID, Заголовок). Таблицу названий строк (ID, Строка)
2. проходим первую строку, заполняем таблицу заголовков столбцов. Где ID это номер заголовка по порядку.
3. Проходим построчно все остальное. Из первой ячейки берем название строки, получаем ID строки, далее перебор всего оставшегося в строке - номер ячейки попорядку это ID столбца.

А как это реализовывать - зависит от источника сводной таблицы.
...
Рейтинг: 0 / 0
Нормализация кросс-таблицы
    #38176859
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше что-нибудь универсальное придумай для создания сложных кросс таблиц. Типа такой
ПациентТемператураДавление01.0202.0203.02Среднее01.0202.0203.02Иванов И.И.36.636.836.536.7120/80125/83130/90Сидоров С.С.38.036.937.5150/110145/100130/90
...
Рейтинг: 0 / 0
Нормализация кросс-таблицы
    #38176959
sg12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMДавайт всё же попробуем решить именно задачу приведения матричной формы к нормальной. То, что обсуждалось, но нормально не решилось .
Задача: Мы имеем в качестве исходника именно и только кросс-таблицу, причём в некоем столбце (обычно - первом) находятся первые ключевые данные, в первых строках (обычно - одной) находятся вторые ключевые данные, а в остальных ячейках матрицы (в большинстве случаев - текстовых) - сами данные.
Результат: Как можно более просто получить нормальную таблицу из трех полей (строка/столбец/значение) с описанием матрицы. В качестве бонуса - получить три таблицы: описание матрицы (код строки/код столбца/значение) и два справочника (строка/столбец) со связками код/значение...

На практике это означает, что вы нашли способ как созданную в EXCEL писанину новичков перегнать в обычные таблицы.
Но эти редкие разовые задачи действительно проще сделать обычным двойным циклом - наглядно ошибки выскочат, их можно будет на ходу обработать.

Что касается прямой задачи, то для этого нужно сделать то, о чем любят говорить, но не любят делать новички - изучить "Нормализацию баз данных".
В числе многих преимуществом у вас будет и возможность получения из них кросс-таблиц для отчетов.
Простые кросс-запросы в VFP вы можете получить так: Меню-File-New-Query-Wizard-Cross Tab, Wizard сам вам напишет SELECT.
Но обычно такие запросы нужны для отчетов в EXCEL, а туда практичнее данные (вместе с их шапками) перегонять напрямую наработанными циклами непосредствеено из соответствующих курсоров.

ЗЫ. _genxtab в фоксе известен порядка лет двадцати и серьезные программисты о нем осведомлены. А новичков он только вводит в заблуждение, вместо изучения возможностей циклов и SELECT-ов. Разумеется, кроме тех случаев, когда в нем действительно есть необходимость.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Нормализация кросс-таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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