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