Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / разрезание таблицы / 9 сообщений из 9, страница 1 из 1
01.12.2004, 21:09:12
    #32808476
andrey137
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разрезание таблицы
Всем привет! Вот вопрос:

Есть таблица описывающая товары, в помимо прочих имеются столбцы ТИП и ЕДИНИЦА ИЗМЕРЕНИЯ, нужно автоматом перегонять данные из этой таблицы в базу данных. В базе данных хотелось бы сделать 3 таблицы (что бы по науке все было ;-) ) ТОВАР, ТИП, ЕДИНИЦА ИЗМЕРЕНИЯ и связать их ключами.

Вопрос как можно автоматизировать этот перегон скажем с помощью запроса или (в самом тяжелом случае, ибо очень не хочется) VBA.

Т.е. как из простой таблицы сделать три связанные ключами автоматически т.е. не прибегая, скажем, к служебной программе "разделение баз данных".
...
Рейтинг: 0 / 0
01.12.2004, 21:35:54
    #32808494
SinnerXP
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разрезание таблицы
Лучше этот процесс контролировать самому,
сначала дестинктом выбираются значения справочников из указанных полей и формируются таблицы,
далее перегоняется исходная таблица полностью + добавляються поля длЯ заполнения кодов справочников.
Потом апдейтами заполняются из таблиц-справочников.

Исх. - A

insert into B1
select distinct ТИП
from A

insert into C1
select distinct ЕДИНИЦА ИЗМЕРЕНИЯ
from A

insert into A1
select * ТИП
from A

добавить КОДТИПА и КОДЕДИНИЦЫ в A1

update A1
set A1.КОДТИПА = B1.КОД
from B1
where B1.=НАЗВ = A1.ТИП

типа того...
...
Рейтинг: 0 / 0
01.12.2004, 21:54:00
    #32808504
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разрезание таблицы
В аксессе есть на это специальный визард. Нажал пару кнопок и плюй себе в потолок.
...
Рейтинг: 0 / 0
02.12.2004, 02:58:37
    #32808609
andrey137
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разрезание таблицы
У-У-У-У-Р-Р-Р-А-А-А-А-А-А!!!!!!!!

Спасибище большое, SinnerXP!
Все заработало, я правда несовсем понял что ты в конце имел ввиду и сделал так:

INSERT INTO prices ( articul, name, unit_id, C1, C2, section_id )
SELECT [data].[articul], [data].[name], [units].[unit], [data].[C1], [data].[C2], [sections].[section]
FROM (data INNER JOIN units ON [data].[unit]=[units].[description]) INNER JOIN sections ON [data].[section]=[sections].[description];

где prices-конечная таблица, data-исходная, а units и sections это те самые справочники с единицами измерения и типами соответственно.


ОДНАКО, если вдаваться в подробности стоящая задача в следующем заключается:
Есть большущий прайс в Excel, его надо перегнать в MySQL, но поскольку более-менее я только Access знаю, саму прогу по перегону в реляционный вид решил делать в нем.

Для начального этапа (непосредственно перегон) твой метод идеально подходит. Но если в последствии захочется делать добавления - перегнать в ту же базу еще ма-а-аленький прайсик. Капутт... НЕработает, т.к. в таблицы ТИП и ЕДИНИЦА ИЗМЕРЕНИЯ добавятся повторные данные.

Может есть что-либо навроде INSERT DISTINCT... ;-)
НУ, в самом деле, разве нет в такой мощной штуке как SQL средств для проверки существовуют ли уже вводимые данные?
...
Рейтинг: 0 / 0
02.12.2004, 03:00:05
    #32808610
andrey137
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разрезание таблицы
Программист-Любитель, визард не годится ибо нужен автоматизьм ;-) Вот если б этот визард автоматом запускать и необходимые параметры ему передавать...
...
Рейтинг: 0 / 0
02.12.2004, 03:01:55
    #32808612
andrey137
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разрезание таблицы
И еще, кстати, SinnerXP не просветишь?

Не первый раз уже натыкаюсь на термин "справочники" - так, видимо, таблицы состоящие только из ключа и описания называют?

Это общепринятое название или так только на этом форуме выражовываются? ;-)
...
Рейтинг: 0 / 0
02.12.2004, 08:04:00
    #32808739
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разрезание таблицы
Обычно под справочниками понимают таблицы на стороне 1 в отношении 1 ко многим. Как правило это код (ключ, удобно делать автоинкрементом) + значение (чаще всего строка) + возможный комментарий, флажок какой-нибудь, еще что-нибудь по вкусу.

Типичное применение - типы, категории, классификация основных данных.

Часто бывает, что справочник может быть фиксированным или значения в нем редко модифицируются.

Значения справочников логично использовать в качестве заголовков столбцов перекркстных запросов.
...
Рейтинг: 0 / 0
02.12.2004, 12:42:22
    #32809354
andrey137
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разрезание таблицы
Спасибище всем большое за прояснения....
и все-же, дико извиняясь за наглость, спрошу...

ЧТО ПОДСКАЖЕТЕ ПО ПОВОДУ РЕШЕНИЯ ВЫШЕОПИСАННОЙ ЗАДАЧИ ПОЗВОЛЯЮЩЕГО В ПОСЛЕДСТВИИ ПРОИЗВОДИТЬ ДОБАВЛЕНИЕ ИНФРОМАЦИИ?
...
Рейтинг: 0 / 0
02.12.2004, 12:56:25
    #32809408
Программист-Любитель
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
разрезание таблицы
А в чем проблема добавлять и редактировать записи (строки) в самой таблице-справочнике ? Ненаказуемо.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / разрезание таблицы / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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