ETL三重引用timeKey,子查询返回多于1个值
ETL triple reference timeKey, subquery returned more than 1 value
我正在编写一个 ETL,我试图让我的维度引用时间维度 3 次。但是我连第一个都做不对
错误说:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
我的代码:
SELECT e.eventName,
e.eventType,
e.numberOfPersons,
(SELECT timeKey
FROM starSchema.dbo.timeDim
JOIN reservation r
ON r.reservationDate = timeDim.DATE) AS resDate,
e.eventStartDate,
e.eventEndDate,
contact.name,
customer.company
FROM events e
JOIN reservation r
ON e.reservationId = r.reservationId
JOIN customer
ON e.customerId = customer.customerId
JOIN contact
ON customer.contactId = contact.contactId
我正在尝试将源日期时间与我的时间维度和 return timeKey 结合起来。
我的目标是有一个 timeKey(int) 来引用时间维度。
我想用 r.reservationdate、e.eventStartDate 和 e.eventEndDate 执行此操作。
我的时间维度图片:
来源图片:
我想你只是想要一个相关的子查询:
(SELECT timeKey FROM starSchema.dbo.timeDim WHERE r.reservationDate = timeDim.DATE) AS resDate,
您不想在子查询中使用 JOIN
。您希望连接到外部查询中的预订 table。
我正在编写一个 ETL,我试图让我的维度引用时间维度 3 次。但是我连第一个都做不对
错误说:
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
我的代码:
SELECT e.eventName,
e.eventType,
e.numberOfPersons,
(SELECT timeKey
FROM starSchema.dbo.timeDim
JOIN reservation r
ON r.reservationDate = timeDim.DATE) AS resDate,
e.eventStartDate,
e.eventEndDate,
contact.name,
customer.company
FROM events e
JOIN reservation r
ON e.reservationId = r.reservationId
JOIN customer
ON e.customerId = customer.customerId
JOIN contact
ON customer.contactId = contact.contactId
我正在尝试将源日期时间与我的时间维度和 return timeKey 结合起来。
我的目标是有一个 timeKey(int) 来引用时间维度。
我想用 r.reservationdate、e.eventStartDate 和 e.eventEndDate 执行此操作。
我的时间维度图片:
来源图片:
我想你只是想要一个相关的子查询:
(SELECT timeKey FROM starSchema.dbo.timeDim WHERE r.reservationDate = timeDim.DATE) AS resDate,
您不想在子查询中使用 JOIN
。您希望连接到外部查询中的预订 table。