|
Нормализация кросс-таблицы
|
|||
---|---|---|---|
#18+
Давайт всё же попробуем решить именно задачу приведения матричной формы к нормальной. То, что обсуждалось, но нормально не решилось . Задача: Мы имеем в качестве исходника именно и только кросс-таблицу, причём в некоем столбце (обычно - первом) находятся первые ключевые данные, в первых строках (обычно - одной) находятся вторые ключевые данные, а в остальных ячейках матрицы (в большинстве случаев - текстовых) - сами данные. Результат: Как можно более просто получить нормальную таблицу из трех полей (строка/столбец/значение) с описанием матрицы. В качестве бонуса - получить три таблицы: описание матрицы (код строки/код столбца/значение) и два справочника (строка/столбец) со связками код/значение... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 21:56 |
|
Нормализация кросс-таблицы
|
|||
---|---|---|---|
#18+
Берем табличку, перегоняем в эксель, делаем там сводную таблицу. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 06:37 |
|
Нормализация кросс-таблицы
|
|||
---|---|---|---|
#18+
Dima T, Странно... Из сводной делать нечто сводное Я был лучшего мнения о твоих умственных способностях, даже в семь утра по МСК. Повторюсь - надо из сводной сделать нормальную таблицу. Нормальную - это нормализованную. И безо всяких COM и ADO. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 07:11 |
|
Нормализация кросс-таблицы
|
|||
---|---|---|---|
#18+
AndreTM Dima T, Странно... Из сводной делать нечто сводное Упс ..., невнимательно ТЗ прочитал. :) В обратную сторону редко нужная задача и достаточно легко решаемая. Алгоритм: 1. Делаем курсор для результата: ID заголовка, ID строки, Значение. Таблицу заголовков (ID, Заголовок). Таблицу названий строк (ID, Строка) 2. проходим первую строку, заполняем таблицу заголовков столбцов. Где ID это номер заголовка по порядку. 3. Проходим построчно все остальное. Из первой ячейки берем название строки, получаем ID строки, далее перебор всего оставшегося в строке - номер ячейки попорядку это ID столбца. А как это реализовывать - зависит от источника сводной таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 07:26 |
|
Нормализация кросс-таблицы
|
|||
---|---|---|---|
#18+
Лучше что-нибудь универсальное придумай для создания сложных кросс таблиц. Типа такой ПациентТемператураДавление01.0202.0203.02Среднее01.0202.0203.02Иванов И.И.36.636.836.536.7120/80125/83130/90Сидоров С.С.38.036.937.5150/110145/100130/90 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 07:47 |
|
Нормализация кросс-таблицы
|
|||
---|---|---|---|
#18+
AndreTMДавайт всё же попробуем решить именно задачу приведения матричной формы к нормальной. То, что обсуждалось, но нормально не решилось . Задача: Мы имеем в качестве исходника именно и только кросс-таблицу, причём в некоем столбце (обычно - первом) находятся первые ключевые данные, в первых строках (обычно - одной) находятся вторые ключевые данные, а в остальных ячейках матрицы (в большинстве случаев - текстовых) - сами данные. Результат: Как можно более просто получить нормальную таблицу из трех полей (строка/столбец/значение) с описанием матрицы. В качестве бонуса - получить три таблицы: описание матрицы (код строки/код столбца/значение) и два справочника (строка/столбец) со связками код/значение... На практике это означает, что вы нашли способ как созданную в EXCEL писанину новичков перегнать в обычные таблицы. Но эти редкие разовые задачи действительно проще сделать обычным двойным циклом - наглядно ошибки выскочат, их можно будет на ходу обработать. Что касается прямой задачи, то для этого нужно сделать то, о чем любят говорить, но не любят делать новички - изучить "Нормализацию баз данных". В числе многих преимуществом у вас будет и возможность получения из них кросс-таблиц для отчетов. Простые кросс-запросы в VFP вы можете получить так: Меню-File-New-Query-Wizard-Cross Tab, Wizard сам вам напишет SELECT. Но обычно такие запросы нужны для отчетов в EXCEL, а туда практичнее данные (вместе с их шапками) перегонять напрямую наработанными циклами непосредствеено из соответствующих курсоров. ЗЫ. _genxtab в фоксе известен порядка лет двадцати и серьезные программисты о нем осведомлены. А новичков он только вводит в заблуждение, вместо изучения возможностей циклов и SELECT-ов. Разумеется, кроме тех случаев, когда в нем действительно есть необходимость. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 10:32 |
|
|
start [/forum/topic.php?desktop=1&fid=41&tid=1583128]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 277ms |
total: | 423ms |
0 / 0 |