08:54

Совершенству эволюция не нужна.
Добрый день :)

Есть кто-нибудь, кто вплотную работает с базами данных?

Задача такая: В одном MDF-файле находится около 200 таблиц с примерно одинаковой информацией. Примерно. В целом каждая таблица представляет собой нечто вроде:

Фамилия | Имя | Отчество | Дата рождения | Место рождения | Свойство | Другая инфа о человеке |

Нужно создать одну большую таблицу, в которой примерно в таком же виде будет находиться информация, собранная СО ВСЕХ таблиц этой базы. Напомню, что всего таблиц 200, и хочется по максимуму автоматизировать сведение информации из нескольких источников в один. Допустим, скриптом.

Вот только есть проблема. Из этих 200 таблиц только часть представлена в том виде, что я описал. Есть например и такие:

| Фамилия Имя Отчество | Дата и место рождения | Свойство | Другая инфа |

И такие:

| Свойство | Фамилия Инициалы | Другая инфа |

То есть все таблицы разные и не факт, что содержат всю нужную информацию в одинаковом виде. Кое где имеются и нули в ячейках, при том что остальная строка заполнена нужной инфой. Столбцы называются N1, N2 ... NX, информация в них также может быть перемешана.

Так вот вопрос: можно ли полностью автоматически собрать данные со всех таблиц в одну, удовлетворяя условиям, что инфа должна представляться в виде Фамилия | Имя | Отчество | Дата рождения | Место рождения | Свойство | Другая инфа о человеке |, преобразовывая тип данных, разнося данные из одной ячейки в несколько разных, перемещаяя ВСЮ прочую инфу в столбец "Другая инфа" и т.п. Такое вообще возможно, не проходясь по каждой из 200 таблиц вручную, с помощью задания каких-либо условий? Пускай там будет четырехэтажный скрипт, но вообще возможно ли такое? Или я чего-то не понимаю?))

Комментарии
17.05.2013 в 09:55

Танкист Апокалипсиса
В общем случае надо использовать продукт, поддерживающий ETL, а в частном - придётся писать кучу скриптов. А предварительно - просматривать все таблицы для выявления вариаций таблиц.
17.05.2013 в 10:24

Get lucky
есть выбор на чем писать?
17.05.2013 в 11:04

Совершенству эволюция не нужна.
DukeSS,
просматривать все таблицы
Уже понятнее. К тому все и идет, поскольку никаких дополнительных продуктов кроме стандартных наборов систем управления БД - MS SQL или Access - не предусмотрено.

Сигурд Лис,
Microsoft SQL) Базу туда я уже загнал, сижу вот втыкаю в эти таблицы и понимаю, что скрипт должен содержать условий больше, чем таблиц в базе.

Как бы все руками разносить не пришлось)))
17.05.2013 в 12:41

Уж тут не то что Боже мой. А просто мамочки мои (c)
А ключ-то у вас что? Фамилия + имя + отчество? Определите ключ для начала, в таблицах с полями типа | Фамилия Инициалы | и | Фамилия Имя Отчество | разбейте эти поля по пробелам на три части. И пишите скрипт с трехэтапным селектом.
Хотя с инициалами фигня будет, как у вас система отличит Петрова Ивана Ильича от Петрова Игоря Ивановича?
17.05.2013 в 13:00

Совершенству эволюция не нужна.
Chukcha2,
Чего-то похожего на ключевые поля нет как в таблицах mdf-файла, так и в ТЗ на сводную таблицу. Фамилия + Имя + Отчество как-то не канает, тем более что да, там полно таблиц с инициалами.
17.05.2013 в 13:12

Уж тут не то что Боже мой. А просто мамочки мои (c)
А как вы их тогда вообще собирать хотите? Или у вас таблицы небольшие и Петров И.И. всегда один и тот же человек?
17.05.2013 в 13:16

Совершенству эволюция не нужна.
Chukcha2,
Там может повторяться Петров И.И., но с разными датами и свойствами. Опять же свойство может быть одинаковым у нескольких людей.

Я говорю о том, что ключевые поля изначально не предусмотрены ни в одной таблице.. Конечно можно в сводную ввести некий символьный идентификатор, но толку-то от него?
17.05.2013 в 16:12

Power is like being a lady... if you have to tell people you are, you aren't. (C) M. Thatcher
поделюсь стаарым опытом, вдруг поможет -
давным-давно, в далёкой галакт..эээ.., в общем, базы тогда были dbf, а проги для обработки писались на клиппере.
Похожую по типа задачку решали поэтапно, сначала приведя к хоть немного "общему знаменателю" типы-вид данных в отдельных таблицах, потом, прикинув, что из оного может служить ключом, собрали в одну, а потом уже "причёсывали" общую..
В общем, как щаз помню скрипт замены на единый формат около десятка(!) вариантов написания "г.Санкт-Петербург"...