Look-up value in cube
- April 15, 2019
- 10 replies
- 365 views
- Vanguard
- 20 replies
10 replies
- Hero
- 163 replies
- October 30, 2019
I noticed this doesn’t work yet in 2019.2. Is this going to be implemented in the future?
Could we add an option to also sort rows and columns according to the lookup? Sorting alphabetically isn’t always preferred. I tend to resort to appending a number to the values that end up as column names. This even requires an additional column in the table with a sorting number because solutions such as row_number() in an expression don’t work (they result in all 1’s for an entire series).
- Thinkwise blogger
- 85 replies
- October 31, 2019
I support his idea, if this change does not have a significant negative influence on the performance of cubes with a large amount data.
- Apprentice
- 8 replies
- November 5, 2019
I recently had the same problem: vote = vote + 1
- Rookie
- 4 replies
- November 23, 2020
I have the same problem. Is there any word if this is something that is being looked into?
Thanks.
- 38 replies
- November 22, 2022
I assumed this was already working in the cube, but unfortunately this community idea shows different.
This would be a great addition and also avoids complexity in cube views.
- Administrator
- 4028 replies
- August 16, 2024
All the votes have been transferred into this idea.
- Community Manager
- 662 replies
- October 25, 2024
Hi all,
We’ve evaluated this feature. There are a couple of challenges I’d like to share.
Given the following data structure and data set:

In this scenario, a semantic key is used for milestone (milestone_nr).
The result is that not every unique milestone number will have the same milestone name.
Consider a cube that is set up on milestone activity with the project id and the milestone id as dimensions and the number of hours as value. The resulting cube would use the following dataset:
project_id | milestone_nr | no_of_hours |
---|---|---|
1 | 10 | 500 |
1 | 20 | 300 |
1 | 30 | 100 |
2 | 10 | 13 |
2 | 20 | 44 |
3 | 10 | 9000 |
3 | 20 | 5000 |
When the data is aggregated per milestone, the resulting cube would look as following:
milestone_nr | no_of_hours |
---|---|
10 | 9513 |
20 | 5344 |
30 | 100 |
These can no longer be translated as look-ups, as the value ‘10’ has multiple translations.
This scenario would favor grouping based on the translation of a look-up dimension, as the semantic key is not meaningful here. This would look as following:
milestone_nr | no_of_hours |
---|---|
Preparation | 500 |
Development | 300 |
Completion | 100 |
Support 1 | 13 |
Support 2 | 44 |
Research | 9000 |
Construction | 5000 |
However, this would immediately change cubes in an unfortunate way where the semantic key is actually meaningful, and/or situations where the translation is not unique and should always be considered in context of other fields.
For instance, consider a database which only uses identities. Employee name is unique, but only per company.

When you create a cube of travel time and you do not include the company as a dimension, an employee named ‘John Dough’ in both companies will be aggregated. Even though they have different records and are in fact two different persons.
In this scenario, the end user shouldn’t aggregate based on a translated employee_id, but should always place the employee_id in a group with company_id.
When this rule is enforced, it will be easier for the GUI to translate an employee as the full look-up context is present as dimensions.
I’d love to hear your thoughts on this.
Should we aggregate based on the translation instead of the foreign key value?
Or should we aggregate based on the foreign key values and afterwards translate, provided that the full foreign key is placed as dimensions in the cube?
- Community Manager
- 1105 replies
- June 20, 2025
Dear voters, the above comment by
- Thinkwise Local Partner Brasil
- 544 replies
- June 20, 2025
In multi-key scenario where a PK column doesn't have a referential constraint, you wouldn't even want to be able to aggregate like that. So if in your last example employee_id had a constraint to an employee table that would guarantee uniqueness, then there is no issue I believe because the lookup value would come from the employee table.
The base point here is that milestone_name and employee_name are multi-key lookups and therefor cannot be referenced by just a part of it's key. If, as said above, there would be an employee table than employee_id would be a feasible lookup as its a unique key in the employee table with hopefully then a lookup value.
--
As you would define the lookup in the cube, it would give you also the grouping information that is mandatory. Eg. you cannot group milestone or employee in your scenarios as a single entity because it doesn't exist as such in your data-scheme. It would only make sense in combination with the other key(s) for that lookup.
Question is if you could incorporate mandatory groupings like this to uphold the constraint that project_id and milestone_nr are together a value you can aggregate. And that project_id is an entity you can aggregate as it would look up to the project table.
- Captain
- 116 replies
- June 23, 2025
I should expect this would work like a normal lookup (display lookup value based on the foreign key). If you don’t want this, you can change the lookup. If you want milestone_name and milestone_nr, add an expression field or create a view as we do now.
I noticed this doesn’t work yet in 2019.2. Is this going to be implemented in the future?
Could we add an option to also sort rows and columns according to the lookup? Sorting alphabetically isn’t always preferred. I tend to resort to appending a number to the values that end up as column names. This even requires an additional column in the table with a sorting number because solutions such as row_number() in an expression don’t work (they result in all 1’s for an entire series).
I support his idea, if this change does not have a significant negative influence on the performance of cubes with a large amount data.
I recently had the same problem: vote = vote + 1
I have the same problem. Is there any word if this is something that is being looked into?
Thanks.
I assumed this was already working in the cube, but unfortunately this community idea shows different.
This would be a great addition and also avoids complexity in cube views.
All the votes have been transferred into this idea.
Hi all,
We’ve evaluated this feature. There are a couple of challenges I’d like to share.
Given the following data structure and data set:

In this scenario, a semantic key is used for milestone (milestone_nr).
The result is that not every unique milestone number will have the same milestone name.
Consider a cube that is set up on milestone activity with the project id and the milestone id as dimensions and the number of hours as value. The resulting cube would use the following dataset:
project_id | milestone_nr | no_of_hours |
---|---|---|
1 | 10 | 500 |
1 | 20 | 300 |
1 | 30 | 100 |
2 | 10 | 13 |
2 | 20 | 44 |
3 | 10 | 9000 |
3 | 20 | 5000 |
When the data is aggregated per milestone, the resulting cube would look as following:
milestone_nr | no_of_hours |
---|---|
10 | 9513 |
20 | 5344 |
30 | 100 |
These can no longer be translated as look-ups, as the value ‘10’ has multiple translations.
This scenario would favor grouping based on the translation of a look-up dimension, as the semantic key is not meaningful here. This would look as following:
milestone_nr | no_of_hours |
---|---|
Preparation | 500 |
Development | 300 |
Completion | 100 |
Support 1 | 13 |
Support 2 | 44 |
Research | 9000 |
Construction | 5000 |
However, this would immediately change cubes in an unfortunate way where the semantic key is actually meaningful, and/or situations where the translation is not unique and should always be considered in context of other fields.
For instance, consider a database which only uses identities. Employee name is unique, but only per company.

When you create a cube of travel time and you do not include the company as a dimension, an employee named ‘John Dough’ in both companies will be aggregated. Even though they have different records and are in fact two different persons.
In this scenario, the end user shouldn’t aggregate based on a translated employee_id, but should always place the employee_id in a group with company_id.
When this rule is enforced, it will be easier for the GUI to translate an employee as the full look-up context is present as dimensions.
I’d love to hear your thoughts on this.
Should we aggregate based on the translation instead of the foreign key value?
Or should we aggregate based on the foreign key values and afterwards translate, provided that the full foreign key is placed as dimensions in the cube?
Dear voters, the above comment by
In multi-key scenario where a PK column doesn't have a referential constraint, you wouldn't even want to be able to aggregate like that. So if in your last example employee_id had a constraint to an employee table that would guarantee uniqueness, then there is no issue I believe because the lookup value would come from the employee table.
The base point here is that milestone_name and employee_name are multi-key lookups and therefor cannot be referenced by just a part of it's key. If, as said above, there would be an employee table than employee_id would be a feasible lookup as its a unique key in the employee table with hopefully then a lookup value.
--
As you would define the lookup in the cube, it would give you also the grouping information that is mandatory. Eg. you cannot group milestone or employee in your scenarios as a single entity because it doesn't exist as such in your data-scheme. It would only make sense in combination with the other key(s) for that lookup.
Question is if you could incorporate mandatory groupings like this to uphold the constraint that project_id and milestone_nr are together a value you can aggregate. And that project_id is an entity you can aggregate as it would look up to the project table.
I should expect this would work like a normal lookup (display lookup value based on the foreign key). If you don’t want this, you can change the lookup. If you want milestone_name and milestone_nr, add an expression field or create a view as we do now.
Reply
Latest answered questions
font in DEvX for richt text
2 RepliesEmail connector saveToSentItems
1 ReplyWhy does my model require base model "Enrichtments" for certains tasks of the SF?
4 RepliesScrum / Trello / Jira board structure visualization
15 RepliesUpdate handler expects uniqueidentifier variable that it is not passed
3 Replies
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.
Scanning file for viruses.
Sorry, we're still checking this file's contents to make sure it's safe to download. Please try again in a few minutes.
OKThis file cannot be downloaded
Sorry, our virus scanner detected that this file isn't safe to download.
OKCookie policy
We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.
Cookie settings
We use 3 different kinds of cookies. You can choose which cookies you want to accept. We need basic cookies to make this site work, therefore these are the minimum you can select. Learn more about our cookies.