|
Преобразовать столбцы в справочную таблицу
|
|||
---|---|---|---|
#18+
Добрый день Сейчас в экселе: В таблице сведения об объектах и столбцы с перечнем 30 деталек. Если в объект вставляется деталька, то ячейка помечается символом. Каким оператором разделить одну большую таблицу на три - сведения об объектах + справочник деталек + вставляемые в объект детальки? Данные я импорту через access, потом ibexpert. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 07:20 |
|
Преобразовать столбцы в справочную таблицу
|
|||
---|---|---|---|
#18+
CostyaN, Вы сами хоть поняли, что написали? Мастер-деталь, внешние ключи FK, суррогатные при использовании генераторов, представления . Как то так. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 08:26 |
|
Преобразовать столбцы в справочную таблицу
|
|||
---|---|---|---|
#18+
CostyaN, Каким оператором в екселе разделить? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 09:46 |
|
Преобразовать столбцы в справочную таблицу
|
|||
---|---|---|---|
#18+
CostyaN, Вы сделайте ещё один столбец. Его значение поставьте 1, 2, 3 (будет означать к какой таблице из трёх принадлежит ряд/строка). И фильтруйте по этому столбцу. IBExpert может сразу закачать из Экселя. Access как промежуточное звено не нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 09:54 |
|
Преобразовать столбцы в справочную таблицу
|
|||
---|---|---|---|
#18+
Проблема не в экспорте,а моих знаниях SQL :-) Если 0, значит деталь может бысть вставлена в объект Таблица Obj: ID Name_____________Detal1___Detal2___Detal3__...__DetalN 1 Obj1________________ 0 _____________ 0 2 Obj2__________________________________0 _________ 0 3 Obj3 ... 1кк Obj1kk ___________ 0________ 0 Создам справочник Detal с ID и Name ID Name 1 Detal1 2 Detal2 3 Detal3 .... Создам третью таблицу DetalsForObjects с ObjectID и DetalID. // вместо 0 поставлю ИД объекта для ПЕРВОЙ детальки Update Obj set detal1=ID where detal1 = 0 // добавляю все детальки,которые могут быть вставлены в объект Потом insert into DetalsForObjects select ID, 1 from Obj where detal1 = id Потом для второй детальки тоже самое // вместо 0 поставлю ИД объекта для ВТОРОЙ детальки Update Obj set deta2=ID where detal2 = 0 // добавляю все детальки,которые могут быть вставлены в объект Потом insert into DetalsForObjects select ID, 2 from Obj where detal2 = id ... повторить N раз Может есть правильный способ,чтобы для каждой детали не писать эти пару строк? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 10:42 |
|
Преобразовать столбцы в справочную таблицу
|
|||
---|---|---|---|
#18+
CostyaN, insert надо делать честно по одной записи. Update зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 10:59 |
|
Преобразовать столбцы в справочную таблицу
|
|||
---|---|---|---|
#18+
KreatorXXI, Да, вы правы, наверное можно просто insert into DetalsForObjects select ID, 1 from Obj where detal1 = 0 Все же нельзя парой строк для всех столбцов сразу внести данные? что то вида процедура в ней while <пока не закончились столбцы>, в нем сравниваем имя столбца/порядковую позицию с именем в справочнике. А внутри уже инсерт ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 11:25 |
|
Преобразовать столбцы в справочную таблицу
|
|||
---|---|---|---|
#18+
CostyaN, непонятно зачем while? На чём хотите написать? Я думал будет подготовлен скрипт, состоящий из одних insert. Можно Экселевскую таблицу сразу закачать. Вернее три раза. Это IBExpert может. И ещё раз. Если есть какой-то ЯП, то там можно и while. В IBExpert'е есть возможности для написания своих продвинутых скриптов. Я в этом не силён. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2020, 13:36 |
|
Преобразовать столбцы в справочную таблицу
|
|||
---|---|---|---|
#18+
Не проще прямо в экселе склеить строку с инсертами сложить в одной колонке и исполнить ее потом в эксперте как скрипт банальным копипастом? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2020, 09:52 |
|
|
start [/forum/topic.php?fid=40&msg=39969574&tid=1560315]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
155ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 276ms |
0 / 0 |