1
我必须显示2011-2014年的表中的数据。该表具有用于存储实际年份的称为时间的另一个表的时间标识。 我有从这个日期id到日期id选择数据的语句。oracle SQL从此date_id中选择此date_id
SELECT sum(no_of_placements)
FROM fact_accounts
WHERE
(SELECT account_dim.account_id FROM account_dim WHERE account_dim.account_name = 'DCompany1')
= fact_accounts.fk2
AND (
(SELECT time_dim.time_id FROM time_dim WHERE time_dim.year = 2011)
= fact_accounts.fk1_time_id
OR (SELECT time_dim.time_id FROM time_dim WHERE time_dim.year = 2012)
= fact_accounts.fk1_time_id
OR (SELECT time_dim.time_id FROM time_dim WHERE time_dim.year = 2013)
= fact_accounts.fk1_time_id
OR (SELECT time_dim.time_id FROM time_dim WHERE time_dim.year = 2014)
= fact_accounts.fk1_time_id
)
GROUP BY fact_accounts.no_of_placements
我该如何达到相同的目标,而无需设置每年匹配time_id
的条件?这似乎不是有效的,因为有更大范围的年份。
非常感谢!我第一次只做了group by,但它只从一行返回了no_of_placements,并没有对它进行聚合。所以我使用了sum函数。 – DazedNConfused