|
|
|
Сложные расчеты между записями
|
|||
|---|---|---|---|
|
#18+
Уважаемые специалисты! Прошу трошки внимания! A97 Задача: Есть нормализованная база Код: plaintext 1. 2. 3. 4. Интересно получить из нее сравнения: (1) план-факт по 1 дате (2) план-факт по интервалу дат Проблема: Отчет должен включать расчетные значения например Остаток от Реализации в приведенном примере равен 50: ФактВыпуск (110) - ФактРеализация (60) То есть отчет должен быть вида: Код: plaintext 1. 2. 3. 4. 5. 6. Вопрос: КАК ЭТО СДЕЛАТЬ?!! Понимаю, что для задачи (1) план-факт по 1 дате можно просто денормализовать вытянуть план и факт в одну запись а внутри этой одной записи легко посчитать что угодно но как быть со второй - (2) план-факт по интервалу дат??? то есть отчет вида: Код: plaintext 1. Здесь вытягивать в одну запись - бред же! Идея: выгружать все исходные данные в виде "почти второй отчет" развернуто во временную таблицу с помощью Transform в вид Код: plaintext 1. с "расчетными значениями" Правильная идея? Тогда как определять, какие поля хватать расчетчиком? по индексу поля "Параметр?" Еще идеи, которыми вы пользуетесь? Примеры реализации? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 16:07:43 |
|
||
|
Сложные расчеты между записями
|
|||
|---|---|---|---|
|
#18+
ИМХО - сложно называть таблу нормализованной (1 нормальная форма - не больше - и то из-за того, что база реляционная) ИМХО2 - авторПараметр План Факт Выпуск 90 110 Реализация х 60 - одним селектом авторОстаток от Реализации 50 - еще одним при необходимости можно склеить их union'ом PS: Про вторую задачу не понял :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 16:35:16 |
|
||
|
Сложные расчеты между записями
|
|||
|---|---|---|---|
|
#18+
Надо, наверное, создать перекрестный запрос ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 17:00:42 |
|
||
|
Сложные расчеты между записями
|
|||
|---|---|---|---|
|
#18+
про перекрестный понимаю и говорю про него (transform) вторая задача - это то же самое, что первая, но не одна пара План-факт, а задаваемое множество таких пар от янв до декабря например а про второй селект туплю - как я в селекте произведу расчеты между 2-мя записями: Станколит-1 Выпуск 110 Станколит-1Реализация 60 ??!!! Join исходной таблицы саму с собой по подразделению и периоду с целью получения обоих параметров в 1 запись и расчет внутри нее? а как выпуск с реализацией заджойнить-то?! промежуточное вычисляемое псевдополе = 1???? объясни пожалуйста как ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 17:17:51 |
|
||
|
Сложные расчеты между записями
|
|||
|---|---|---|---|
|
#18+
ИМХО2 - авторПараметр План Факт Выпуск 90 110 Реализация х 60 - одним селектом Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 17:36:05 |
|
||
|
Сложные расчеты между записями
|
|||
|---|---|---|---|
|
#18+
теперь понятно, как старею, забываю основы получается на каждый расчетный элемент нужен свой запрос это же кошмар будет!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 18:06:43 |
|
||
|
Сложные расчеты между записями
|
|||
|---|---|---|---|
|
#18+
Alexus12теперь понятно, как старею, забываю основы получается на каждый расчетный элемент нужен свой запрос это же кошмар будет!!!! А если "склеить" поля [Дата] & [ПланИлиФакт] и уже по получившемуся полю сделать transform? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2004, 18:13:32 |
|
||
|
Сложные расчеты между записями
|
|||
|---|---|---|---|
|
#18+
записаться в воду 2*27 Задача номер 2 Как известно, пользователям удобнее вводить данные в ненормализованном виде: Период Подразделение Выпуск_План Реализация_План Выпуск_Факт Реализация_Факт И_так_далее янв Станколит-1 100 80 50 60 .... фев Станколит-1 100 80 50 60...... .... Также известно, что работать с такими данными весьма неудобно: чтобы получить отчет вида Параметр ПланЯнв ФактЯнв ПланФев ФактФев... Станколит-1 Выпуск Станколит-1 Реализация Станколит-1 Остаток (выпуск - реализация) Станколит-2 Выпуск Станколит-2 Реализация Станколит-2 Остаток (выпуск - реализация) отягощенный _расчетными_ записями "Остаток (выпуск - реализация)" нужно сильно извратиться то бишь нормализовать таблицу (умею) и затем сделать Transform И есть 2 пути: Сначала рассчитать "Остаток (выпуск - реализация)" в ненормализованной (внутри одной записи это просто) и потом нормализовывать или Сразу нормализовать, а потом рассчитывать методом, предложенным уважаемым paparone Вопрос: как лучше или как уважаемый Олл чаще делает и почему? Спасибо! >А если "склеить" поля [Дата] & [ПланИлиФакт] и уже по получившемуся полю сделать transform? Так и собираюсь сделать, см.задачу 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2004, 10:42:47 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32585987&tid=1673464]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 187ms |
| total: | 435ms |

| 0 / 0 |
