A computer implemented method, comprising: receiving a plurality of source records from a plurality of data sources (110, 112, 114; 1010), each source record including a plurality of fields (802, 804, 806, 808, 810, 812); determining (306; 406; 506; S720) all match groups of source records from the data sources (110, 112, 114; 1010) that relate to the same entity and that have two or more records for said same entity; assigning at least two different sets of fields of the plurality of fields of the source records to at least two different survivorship groups, wherein each of the survivorship groups represents the respective one of the sets of fields that are associated with the same survivorship rule, wherein the survivorship rules are associated with either reliability, recency, or completeness, wherein a reliability score is assigned to each of the different data sources for the reliability, wherein a most recently updated record is chosen for the recency and wherein a record of a data source with the greatest number of populated fields is chosen for the completeness; prioritizing (408; 508; S740) all the source records by reliability, recency, and completeness for all survivorship groups, wherein the priority is defined for each survivorship group by ranking, for each of the survivorship groups, an order of the reliability, the recency, and the completeness to be applied for selecting a best record value, and an order of the data sources for the reliability, wherein an alias is defined for each of the survivorship groups for selecting said best record value for each field assigned to the respective survivorship group according to the priority defined for the respective survivorship group, wherein each best record value is simultaneously selected per survivorship group; simultaneously constructing (410; 510; S740) a single best record from the source records for all match groups using a single Structured Query Language statement, the single SQL statement selecting said best record value for each field of the respective survivorship group from joined aliases defined for the survivorship groups; and storing (412; 512; S750) the single best record of each match group. receiving a plurality of source records from a plurality of data sources (110, 112, 114; 1010), each source record including a plurality of fields (802, 804, 806, 808, 810, 812); determining (306; 406; 506; S720) all match groups of source records from the data sources (110, 112, 114; 1010) that relate to the same entity and that have two or more records for said same entity; assigning at least two different sets of fields of the plurality of fields of the source records to at least two different survivorship groups, wherein each of the survivorship groups represents the respective one of the sets of fields that are associated with the same survivorship rule, wherein the survivorship rules are associated with either reliability, recency, or completeness, wherein a reliability score is assigned to each of the different data sources for the reliability, wherein a most recently updated record is chosen for the recency and wherein a record of a data source with the greatest number of populated fields is chosen for the completeness; prioritizing (408; 508; S740) all the source records by reliability, recency, and completeness for all survivorship groups, wherein the priority is defined for each survivorship group by ranking, for each of the survivorship groups, an order of the reliability, the recency, and the completeness to be applied for selecting a best record value, and an order of the data sources for the reliability, wherein an alias is defined for each of the survivorship groups for selecting said best record value for each field assigned to the respective survivorship group according to the priority defined for the respective survivorship group, wherein each best record value is simultaneously selected per survivorship group; simultaneously constructing (410; 510; S740) a single best record from the source records for all match groups using a single Structured Query Language statement, the single SQL statement selecting said best record value for each field of the respective survivorship group from joined aliases defined for the survivorship groups; and storing (412; 512; S750) the single best record of each match group.