我在SQL一個簡單的任務按月根據ID來概括值:SQL SUM GROUP BY其中id隨時間變化
SELECT ID,SUM(Monthly_value) FROM MY_DATABASE GROUP BY ID
然而,我的數據收集了好幾年,與此同時,一些ID值發生了變化,幾個ID開發了相應的新業務,並且存在兩個ID下,在這些有限的情況下,我需要將它們合計爲一個。
我也收到與需要被視爲一個對ID的列表不斷擴充:
- 老相應的新的ID,我要求總結(Monthly_value)這些新老ID的
- 兩個ID被視爲一個。
有沒有一種簡單的方法來修改這個代碼,這樣我就不會在原始數據庫編輯老的ID,並在某些情況下,我可以通過一個ID值求和幾個ID的,而大多數情況下,我會總結,組。
我不應該用新的ID物理替換舊的,因爲其他查詢仍然可以使用它。我可以使用另一個表格,即一個ID可能具有相應另一個ID的字典,這兩者都需要總結。我不知道在哪個方向走,也許
====在這裏,我想,但不知道如何有意義。======
SELECT ID, sum(Monthly_value),
FROM my_database LEFT JOIN my_double_id_cases ON my.database.ID=my_double_id_cases.ID;
GROUP By
Case
NOT NULL my_double_id_cases.SecondaryID
(I do not know what to do to get two ID's to be aggregated, no idea whatsoever)
Else
ID
....
的數據是很簡單的,我從我的questiton移除的時間問題:
Id, date, value
112233,21-10-2012,23 231
232123,20-11-2012,11 234
112233,11-12-2012,21 211
112233,12-12-2013,14 110
887755,12-12-2013,14 110
....(大量的記錄,數年)...
突然在2013年中期我被告知,現在112233將是001122(也是名稱已經改變,實際上沒有辦法聚合,但外部列表中,相應的ID與新ID的字典
預期的結果將是。
ID; Sum (eg. for year 2014)
001122; 10 021 213 (includes also 112233 values, ID changed mid 2014)
232123; 8 323 111 (includes also 887755 values, two IDs are in fact one entity)
other ID's, the majority of them are summed up like in the initial query (group by ID)
而在一天結束時232123和887755也應該總結在一起。 其他ID如果不在我的「詞典」中,則照常進行求和。
======= =======平臺,我使用ACE SQL
,(實際上是,如果我沒有錯,MS接入)。我的代碼位於VBA宏中,我的表格位於Excel文件中。
======================
我會非常感謝你的幫助。
請編輯您的問題,並提供樣本數據和期望的結果。另外,你使用的是SQL Server還是MS Access?它們具有不同的功能和語法。 –
很抱歉,我根據您的要求添加了更多信息。 –