allSelectFields = query.getSelectFields(false);
for(int i=0; i<allSelectFields.size(); i++){
if(allSelectFields.get(i).getClass().equals(DataMartSelectField.class) && ((DataMartSelectField)allSelectFields.get(i)).getAlias().equals(alias)){
uniqueName=((DataMartSelectField)allSelectFields.get(i)).getUniqueName();
datamartField = getDataSource().getModelStructure().getField(uniqueName);
Couple queryNameAndRoot = datamartField.getQueryName();
queryName = (String) queryNameAndRoot.getFirst();
logger.debug("select field query name [" + queryName + "]");
if(queryNameAndRoot.getSecond()!=null){
rootEntity = (IModelEntity)queryNameAndRoot.getSecond();
}else{
rootEntity = datamartField.getParent().getRoot();
}
rootEntityAlias = (String)entityAliases.get(rootEntity.getUniqueName());
queryName = ((DataMartSelectField)allSelectFields.get(i)).getFunction().apply(rootEntityAlias+"."+queryName);