|
|
|
разрезание таблицы
|
|||
|---|---|---|---|
|
#18+
Всем привет! Вот вопрос: Есть таблица описывающая товары, в помимо прочих имеются столбцы ТИП и ЕДИНИЦА ИЗМЕРЕНИЯ, нужно автоматом перегонять данные из этой таблицы в базу данных. В базе данных хотелось бы сделать 3 таблицы (что бы по науке все было ;-) ) ТОВАР, ТИП, ЕДИНИЦА ИЗМЕРЕНИЯ и связать их ключами. Вопрос как можно автоматизировать этот перегон скажем с помощью запроса или (в самом тяжелом случае, ибо очень не хочется) VBA. Т.е. как из простой таблицы сделать три связанные ключами автоматически т.е. не прибегая, скажем, к служебной программе "разделение баз данных". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 21:09:12 |
|
||
|
разрезание таблицы
|
|||
|---|---|---|---|
|
#18+
Лучше этот процесс контролировать самому, сначала дестинктом выбираются значения справочников из указанных полей и формируются таблицы, далее перегоняется исходная таблица полностью + добавляються поля длЯ заполнения кодов справочников. Потом апдейтами заполняются из таблиц-справочников. Исх. - 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.ТИП типа того... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 21:35:54 |
|
||
|
разрезание таблицы
|
|||
|---|---|---|---|
|
#18+
В аксессе есть на это специальный визард. Нажал пару кнопок и плюй себе в потолок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 21:54:00 |
|
||
|
разрезание таблицы
|
|||
|---|---|---|---|
|
#18+
У-У-У-У-Р-Р-Р-А-А-А-А-А-А!!!!!!!! Спасибище большое, 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 средств для проверки существовуют ли уже вводимые данные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 02:58:37 |
|
||
|
разрезание таблицы
|
|||
|---|---|---|---|
|
#18+
Программист-Любитель, визард не годится ибо нужен автоматизьм ;-) Вот если б этот визард автоматом запускать и необходимые параметры ему передавать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 03:00:05 |
|
||
|
разрезание таблицы
|
|||
|---|---|---|---|
|
#18+
И еще, кстати, SinnerXP не просветишь? Не первый раз уже натыкаюсь на термин "справочники" - так, видимо, таблицы состоящие только из ключа и описания называют? Это общепринятое название или так только на этом форуме выражовываются? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 03:01:55 |
|
||
|
разрезание таблицы
|
|||
|---|---|---|---|
|
#18+
Обычно под справочниками понимают таблицы на стороне 1 в отношении 1 ко многим. Как правило это код (ключ, удобно делать автоинкрементом) + значение (чаще всего строка) + возможный комментарий, флажок какой-нибудь, еще что-нибудь по вкусу. Типичное применение - типы, категории, классификация основных данных. Часто бывает, что справочник может быть фиксированным или значения в нем редко модифицируются. Значения справочников логично использовать в качестве заголовков столбцов перекркстных запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 08:04:00 |
|
||
|
разрезание таблицы
|
|||
|---|---|---|---|
|
#18+
Спасибище всем большое за прояснения.... и все-же, дико извиняясь за наглость, спрошу... ЧТО ПОДСКАЖЕТЕ ПО ПОВОДУ РЕШЕНИЯ ВЫШЕОПИСАННОЙ ЗАДАЧИ ПОЗВОЛЯЮЩЕГО В ПОСЛЕДСТВИИ ПРОИЗВОДИТЬ ДОБАВЛЕНИЕ ИНФРОМАЦИИ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2004, 12:42:22 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32808609&tid=1669995]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
47ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 322ms |

| 0 / 0 |
