Vsadnik665 Опубликовано 27 мая, 2011 Жалоба Поделиться Опубликовано 27 мая, 2011 IBExpert, версия 2010.10.08Есть несколько баз, за разные годы. Структура их почти идентична.1) Нужно найти запись, которая хранится в одной из этих баз в определенной таблице.2) А также найти записи в одной базе, которых нет в других.Можно через SQL-запрос в IBExpert или на Delphi написать, неважно.Если в одной базе искать - это нетрудно. А если баз несколько? Как быть? Подскажите!!!базы на другом компе в локальной сети Ссылка на комментарий
TolkienDRR Опубликовано 27 мая, 2011 Жалоба Поделиться Опубликовано 27 мая, 2011 Как вариант - сделать линки на каждую базу в одной экземпляре и нормально осуществить выборки =) Ну или экспорт/импорт таблиц осуществить, на каждый год по партиции =) Не понятна конечная цель - видимо сделать одну большую базу из кучи за предыдущие года? Ссылка на комментарий
Petrovichtim Опубликовано 27 мая, 2011 Жалоба Поделиться Опубликовано 27 мая, 2011 Можно не большую программу написать на делфи, берешь две базы,циклично записываешь первую во вторую, при этом проверяя записи на повторение, потом убираешь первую вместо нее 3-ю , после 4-ю....так во 2-й базе соберутся все записи Ссылка на комментарий
Vsadnik665 Опубликовано 27 мая, 2011 Автор Жалоба Поделиться Опубликовано 27 мая, 2011 Например:в базе 2010 таблица X - поля: индекс, ФИО, ..., результат.в базе 2011 таблица X - поля: индекс, ФИО, старый индекс, ..., результат.поле индекс - ключевое.все записи в таблице X с результатом NULL в конце года переносятся копируются в таблицу следующего года. (была запись в 2010 - стала в 2011, в 2010 тоже осталась на месте)индексы со старого года переносятся в поле старый индекс.Цель 1: Найти записи, которые потерялись при передаче на следующий годЦель 2: Найти запись с определенным индексом (индексы в разных годах не пересекаются, так как в него включен номер года)TolkienDRR, можно поточнее! Я поверхностно знаю базы данных. Что за линки? что за партиции?Базу создавать мне не надо! Базы большие по размеру, так что создать новую базу будет проблематично, долго и ... неправильно!Спасибо за помощь! Ссылка на комментарий
TolkienDRR Опубликовано 27 мая, 2011 Жалоба Поделиться Опубликовано 27 мая, 2011 и ... неправильно! =D забавно учитывая Я поверхностно знаю базы данных.дык у тебя несколько таблиц в рамках одной базы данных. о каких Есть несколько баз ты говоришь?Если просто в одной бд надо создать новую таблицу для 2011 года то:Создаешь новую пустую таблицу для 2011 с полями:индекс - автоинкриментное (счетчик);такие же полями кроме индекса;поле для старого индекса.Далее добавляешь записи из таблицы для 2010.Одним запросом делается, копать в сторону create table и insert into.Добавлено спустя 2 минуты:Vsadnik665линк - ссылка, партиция - часть таблицы, выделяется по значение какого-либо поля. Ссылка на комментарий
Vsadnik665 Опубликовано 27 мая, 2011 Автор Жалоба Поделиться Опубликовано 27 мая, 2011 TolkienDRR, базы с 2007 по 2011 можно считать за одну, если структура одинакова, скажем на 90%???Таблицу создавать не надо. (или это временная таблица? она удалится потом?) Нужен просто список записей.ps. английский я понимаю, не понимаю, что значит сделать линки на каждую базу в одной экземпляреpps. Я думал как правильно написатьи ... неправильно!, в итоге выбрал это... Ссылка на комментарий
Petrovichtim Опубликовано 27 мая, 2011 Жалоба Поделиться Опубликовано 27 мая, 2011 Цель 1: Найти записи, которые потерялись при передаче на следующий год!при добавлении новой записи проверяй есть она в базе или нет Ссылка на комментарий
TolkienDRR Опубликовано 27 мая, 2011 Жалоба Поделиться Опубликовано 27 мая, 2011 Vsadnik665, если совсем-совсем утрировать, база данных - это набор таблиц. Посему вопрос, у тебя много однотипных таблиц в базе данных или много баз данных с однотипной таблицей? Все решается одним скриптом, читать вот это http://www.firebirdsql.org/refdocs/langrefupd21-insert.html Ссылка на комментарий
maxx1101 Опубликовано 27 мая, 2011 Жалоба Поделиться Опубликовано 27 мая, 2011 А что за программа использует базу? Ссылка на комментарий
Vsadnik665 Опубликовано 27 мая, 2011 Автор Жалоба Поделиться Опубликовано 27 мая, 2011 Посему вопрос, у тебя много однотипных таблиц в базе данных или много баз данных с однотипной таблицей?Не пойму к чему вопрос. Однозначного ответа не смог найти. У меня однотипные базы данных, то есть однотипные таблицы в нескольких базах данных.при добавлении новой записи проверяй есть она в базе или нетСовсем не то, что нужно.Все решается одним скриптом, читать вот это http://www.firebirdsql.org/refdocs/langrefupd21-insert.htmlА где там указывается, из какой базы данных берется таблица? Значит все-таки нужно создать временную таблицу???Ничего не понимаю. Мне нужно что наподобие такого:select * from table1 from Baza2010inner join table1 from Baza2011 on Baza2010.table1.index=Baza2011.table1.old_indexНу конечно, from Baza нельзя использовать. Вот я спрашиваю, чем это можно заменить?TolkienDRR, Если все можно решить одним скриптом, так напиши его. Не парь мне мозги. А я сам его обработаю, изучу, разберусь. Ссылка на комментарий
TolkienDRR Опубликовано 28 мая, 2011 Жалоба Поделиться Опубликовано 28 мая, 2011 А где там указывается, из какой базы данных берется таблица? Значит все-таки нужно создать временную таблицу??? Почитай немного мат.части по базам данных. О_о дык, ты мат.часть изучи да разбери, а скрипт ты тупо скопируешь да вставишь. Ничего судя по всему не прочитал из вышепосоветованного... Ссылка на комментарий
Vsadnik665 Опубликовано 28 мая, 2011 Автор Жалоба Поделиться Опубликовано 28 мая, 2011 Будем читать ;)5А нельзя как-то по быстрому все пройти? Пальцем ткни... А то там 500 страниц по 1 предложению Ссылка на комментарий
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти