2014-01-08 6 views
0

Добрый день,Filemaker Pro 12 создать сводную таблицу

Может кто-то, пожалуйста, помогите мне с этим. Я работаю над короткой викториной. У меня возникли проблемы с просмотром резюме всех попыток.

У меня есть две таблицы. В таблице 1 указаны попытки опроса игрока (игроки переходят на следующий уровень, если оценка равна или выше 50). Для каждой попытки создается новая запись. Для примера скажем, что это мой стол в FileMaker Pro 12

Table Name(PLAYER_ATTEMPTS_TB) 
Attempts_ID >>Player_ID >> Player_Name >> Game_Level >> Score 
1   Player001 >> John Smith >> Level 1 >> 30 
2   Player001 >> John Smith >> Level 1 >> 40 
3   Player001 >> John Smith >> Level 1 >> 45 
4   Player001 >> John Smith >> Level 1 >> 55 
5   Player001 >> John Smith >> Level 2 >> 26 
6   Player001 >> John Smith >> Level 2 >> 40 
7   Player001 >> John Smith >> Level 2 >> 45 
8   Player001 >> John Smith >> Level 2 >> 60 
9   Player001 >> John Smith >> Level 3 >> 30 
10  Player001 >> John Smith >> Level 3 >> 40 
11  Player001 >> John Smith >> Level 3 >> 48 
12  Player001 >> John Smith >> Level 3 >> 70 
etc… 

Attempts_ID является первичным ключом

Так что я пытаюсь сделать, это создать сводную таблицу, которая показывает все попытки, которые равны или выше 50 для каждого игрока.

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

Table Name(PLAYER_SUMMARY_TB) 
Summary_ID >>Player_ID >> Player_Name >> Level1_Score >> Level2_Score >> Level3_Score 
1  Player001 >> John Smith >> 55 >> 60 >> 70 
2  Player002 >> Simon Cowell>> 55 >> 60 >> 70 
etc… 

Summary_ID является первичный ключ

Эти две таблицы имеют отношения, Linked полем Player_ID. В таблице «PLAYER_SUMMARY_TB», я сделал счет полей типа Расчет и я поступил следующим образом:

If(PLAYER_ATTEMPTS_TB::Game_Level = Level 1 ; Max(PLAYER_ATTEMPTS_TB:: Score)) 

Это показывает мне правильные результаты с выше, если заявление, но как только я изменить условие « Уровень 2 ", я не получаю никаких результатов. Я не уверен, что я делаю неправильно? Эти две таблицы связаны с помощью Player_ID. Player_ID - это первичный ключ на PLAYER_SUMMARY_TB и внешний ключ на PLAYER_ATTEMPTS_TB.

Пожалуйста, помогите.

Заранее спасибо.

ответ

1

Во-первых, ваша «сводная таблица» - это в основном таблица «Игроки», и было бы лучше рассматривать ее как таковую - например, включив в нее имена игроков (один раз), а не повторяя их в таблице «Попытки».

Существует несколько способов суммировать таблицу «Попытки». Прежде всего, вы можете подготовить итоговый отчет самой таблицы, суммированный по идентификатору PlayerID и по уровню. Чтобы исключить оценки ниже определенного порога, выполните поиск как первый шаг создания отчета.

Другой вариант - использовать отфильтрованные порталы на макете Игроков, один портал на уровень (или, если хотите, использовать один портал и глобальное поле для выбора отображаемого уровня).

Еще один способ - добавить таблицу уровней и показать результаты в портале этой таблицы (хотя это немного сложно описать правильно в нескольких коротких предложениях). Также не совсем понятно, если вы хотите показать все попыток выше порога или только верхний балл - этот метод будет показывать только последний.


Причина, почему ваш расчет не может работать, потому что выражение:

PLAYER_ATTEMPTS_TB::Game_Level 

оценивается с использованием данных из связанной записи первого.

+0

FileMaker 12+ также предоставляет параметр SQL, поэтому запрос типа «SELECT MAX (Score) FROM PLAYER_ATTEMPTS_TB WHERE« Player_ID' =? AND «Game_Level' =? AND Score> = 50» должен работать как расчет для LevelN_Score поля. – pft221

+0

Привет, @ michael.hor257k и pft221. Спасибо за ваш быстрый ответ. Позвольте мне попробовать варианты. Я дам вам знать, как это происходит. –

Смежные вопросы