diff --git a/packages/cubejs-schema-compiler/src/adapter/PreAggregations.js b/packages/cubejs-schema-compiler/src/adapter/PreAggregations.js
index 7e45aafd141bb..9a265c29c8101 100644
--- a/packages/cubejs-schema-compiler/src/adapter/PreAggregations.js
+++ b/packages/cubejs-schema-compiler/src/adapter/PreAggregations.js
@@ -63,6 +63,7 @@ export class PreAggregations {
     if (foundPreAggregation.preAggregation.type === 'rollupLambda') {
       preAggregations = foundPreAggregation.referencedPreAggregations;
     }
+
     return preAggregations.map(preAggregation => {
       if (this.canPartitionsBeUsed(preAggregation)) {
         const { dimension, partitionDimension } = this.partitionDimension(preAggregation);
@@ -151,17 +152,37 @@ export class PreAggregations {
     const queryForSqlEvaluation = this.query.preAggregationQueryForSqlEvaluation(cube, preAggregation);
     const partitionInvalidateKeyQueries = queryForSqlEvaluation.partitionInvalidateKeyQueries && queryForSqlEvaluation.partitionInvalidateKeyQueries(cube, preAggregation);
 
-    const matchedTimeDimension =
-      preAggregation.partitionGranularity &&
-      !this.hasCumulativeMeasures &&
-      this.query.timeDimensions.find(
-        td => td.dimension === foundPreAggregation.references.timeDimensions[0].dimension && td.dateRange
-      );
-    const filters = preAggregation.partitionGranularity && this.query.filters.filter(
-      td => td.dimension === foundPreAggregation.references.timeDimensions[0].dimension &&
-        td.isDateOperator() &&
-        td.camelizeOperator === 'inDateRange' // TODO support all date operators
-    );
+    const matchedTimeDimension = preAggregation.partitionGranularity && !this.hasCumulativeMeasures &&
+      this.query.timeDimensions.find(td => {
+        if (td.dimension === foundPreAggregation.references.timeDimensions[0].dimension && td.dateRange) {
+          return true;
+        }
+
+        const parent = this.query.cubeEvaluator.byPathAnyType(td.expressionPath());
+        if (parent?.aliasMember === foundPreAggregation.references.timeDimensions[0].dimension && td.dateRange) {
+          return true;
+        }
+
+        return false;
+      });
+
+    const filters = preAggregation.partitionGranularity && this.query.filters.filter(td => {
+      // TODO support all date operators
+      if (td.isDateOperator() && td.camelizeOperator === 'inDateRange') {
+        if (td.dimension === foundPreAggregation.references.timeDimensions[0].dimension) {
+          return true;
+        }
+
+        const parent = this.query.cubeEvaluator.byPathAnyType(td.expressionPath());
+        if (parent?.aliasMember === foundPreAggregation.references.timeDimensions[0].dimension && td.dateRange) {
+          return true;
+        }
+
+        return false;
+      }
+
+      return false;
+    });
 
     const uniqueKeyColumnsDefault = () => null;
     const uniqueKeyColumns = ({
@@ -557,7 +578,7 @@ export class PreAggregations {
         R.all(m => backAliasMeasures.indexOf(m) !== -1, transformedQuery.leafMeasures)
       ));
     };
-    
+
     /**
      * Wrap granularity string into an array.
      * @param {string} granularity
@@ -565,7 +586,7 @@ export class PreAggregations {
      */
     const expandGranularity = (granularity) => (
       transformedQuery.granularityHierarchies[granularity] ||
-        [granularity]
+      [granularity]
     );
 
     /**
@@ -666,7 +687,7 @@ export class PreAggregations {
       transformedQuery.leafMeasureAdditive &&
       !transformedQuery.hasMultipliedMeasures
         ? (r) => canUsePreAggregationLeafMeasureAdditive(r) ||
-        canUsePreAggregationNotAdditive(r)
+          canUsePreAggregationNotAdditive(r)
         : canUsePreAggregationNotAdditive;
 
     if (refs) {