Заполнение таблицы полями из двух других таблиц - PullRequest
2 голосов
/ 01 марта 2012

У меня есть две таблицы в Filemaker:

  • tableA (включая поля idA (например, a123), date, price) и

  • tableB (включая поля idB (например, b123), date, price).

Как создать новыйтаблица, tableC, с полем id, заполненным как idA, так и idB (с другими полями, используемыми для расчетов по объединенным данным обеих таблиц)?

Ответы [ 3 ]

1 голос
/ 02 марта 2012

Единственный способ - это написать сценарий (для повторного использования) или сделать это «вручную», если это специальный процесс. Детали зависят от ситуации, поэтому уточняйте.

Обновление: извините, я действительно забыл об этом вопросе. Я предполагаю, что поля идентификаторов не перекрываются даже между таблицами, и вам не нужно добавлять одну и ту же запись более одного раза, но вместо этого обновлять ее. В таком случае самый простой скрипт будет выглядеть так:

Set Variable[ $self, Get( FileName ) ]
Import Records[ $self, Table A -> Table C, sync on ID, update and add new ]
Import Records[ $self, Table B -> Table C, sync on ID, update and add new ]

Шаг Импортировать записи управляется через довольно сложное диалоговое окно, но идея заключается в том, что вы импортируете из того же файла (вы можете просто набрать file:<YourFileName> там), форматом является FileMaker Pro, а затем установить отображение поля. Убедитесь, что вы выбрали Обновить соответствующие записи и Добавьте оставшиеся записи и выберите поля идентификаторов в качестве ключевых файлов для синхронизации.

0 голосов
/ 12 марта 2012

Может быть, вы можете использовать оператор select to .Я не уверен, хотите ли вы использовать вычисляемое поле из таблиц А и В или если вы намеревались рассчитывать поля только из одной и той же таблицы?

Если tableA.IdA существует также в tableB.IdA, вы можете объединить две таблицы и выбрать в.

Иначе, вы запускаете оператор один раз для каждой таблицы.

Выбрать в утверждении

Select tableA.IdA, tableA.field1A, tableA.field2A, tableA.field1A * tableB.field2A
into New_Table from tableA

Редактировать: пропущена часть, в которой вы упоминали FileMaker.Но, возможно, вы могли бы написать это на БД и просто бросить стол.

0 голосов
/ 05 марта 2012

Это будет скрипт FileMaker. Он может быть запущен как триггер сценария, но тогда он не будет незаметным для пользователя. Лучше всего создать таблицы, а затем просто запустить скрипт по мере необходимости (вручную) для построения таблицы C. Если у вас есть FileMaker Server, вы можете запланировать запуск этого сценария периодически, чтобы поддерживать актуальность таблицы С.

...