Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Преобразовать столбцы в справочную таблицу / 10 сообщений из 10, страница 1 из 1
16.06.2020, 07:20
    #39969566
CostyaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать столбцы в справочную таблицу
Добрый день
Сейчас в экселе: В таблице сведения об объектах и столбцы с перечнем 30 деталек. Если в объект вставляется деталька, то ячейка помечается символом. Каким оператором разделить одну большую таблицу на три - сведения об объектах + справочник деталек + вставляемые в объект детальки? Данные я импорту через access, потом ibexpert.
...
Рейтинг: 0 / 0
16.06.2020, 08:26
    #39969574
AltHasp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать столбцы в справочную таблицу
CostyaN,

Вы сами хоть поняли, что написали? Мастер-деталь, внешние ключи FK, суррогатные при использовании генераторов, представления . Как то так.
...
Рейтинг: 0 / 0
16.06.2020, 09:46
    #39969604
WildSery
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать столбцы в справочную таблицу
CostyaN,

Каким оператором в екселе разделить?
...
Рейтинг: 0 / 0
16.06.2020, 09:54
    #39969608
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать столбцы в справочную таблицу
CostyaN,

Вы сделайте ещё один столбец. Его значение поставьте 1, 2, 3 (будет означать к какой таблице из трёх принадлежит ряд/строка). И фильтруйте по этому столбцу. IBExpert может сразу закачать из Экселя. Access как промежуточное звено не нужен.
...
Рейтинг: 0 / 0
16.06.2020, 10:42
    #39969631
CostyaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать столбцы в справочную таблицу
Проблема не в экспорте,а моих знаниях 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 раз

Может есть правильный способ,чтобы для каждой детали не писать эти пару строк?
...
Рейтинг: 0 / 0
16.06.2020, 10:59
    #39969639
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать столбцы в справочную таблицу
CostyaN,

insert надо делать честно по одной записи. Update зачем?
...
Рейтинг: 0 / 0
16.06.2020, 11:25
    #39969661
CostyaN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать столбцы в справочную таблицу
KreatorXXI,

Да, вы правы, наверное можно просто insert into DetalsForObjects select ID, 1 from Obj where detal1 = 0

Все же нельзя парой строк для всех столбцов сразу внести данные?
что то вида процедура в ней while <пока не закончились столбцы>, в нем сравниваем имя столбца/порядковую позицию с именем в справочнике. А внутри уже инсерт
...
Рейтинг: 0 / 0
16.06.2020, 13:36
    #39969739
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать столбцы в справочную таблицу
CostyaN,

непонятно зачем while? На чём хотите написать? Я думал будет подготовлен скрипт, состоящий из одних insert. Можно Экселевскую таблицу сразу закачать. Вернее три раза. Это IBExpert может.
И ещё раз. Если есть какой-то ЯП, то там можно и while. В IBExpert'е есть возможности для написания своих продвинутых скриптов. Я в этом не силён.
...
Рейтинг: 0 / 0
24.06.2020, 09:52
    #39972643
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать столбцы в справочную таблицу
Не проще прямо в экселе склеить строку с инсертами сложить в одной колонке и исполнить ее потом в эксперте как скрипт банальным копипастом?
...
Рейтинг: 0 / 0
25.06.2020, 10:30
    #39973042
KreatorXXI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразовать столбцы в справочную таблицу
Ivan_Pisarevsky,

ТС, похоже, не в ту ветку вопрос засунул. Ему надо написать некий цикл с while. Может на VBA?
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Преобразовать столбцы в справочную таблицу / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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