我正在C#中創建一個自定義報告應用程序,並需要聚合一些數據。使用SQL或Linq數據綁定
讓我們簡單點。假設我一年有10,000個銷售額,我需要一種通用的方法來按照說,月,日或小時來分類數據。因此,每個垃圾箱將在該時期內對所有銷售進行總計。
有沒有人在SQL或Linq中寫過這樣的查詢?
我正在C#中創建一個自定義報告應用程序,並需要聚合一些數據。使用SQL或Linq數據綁定
讓我們簡單點。假設我一年有10,000個銷售額,我需要一種通用的方法來按照說,月,日或小時來分類數據。因此,每個垃圾箱將在該時期內對所有銷售進行總計。
有沒有人在SQL或Linq中寫過這樣的查詢?
傳統,那就是:
(from s in Sales
where s.SalesDate.Year = 2009
&& s.SalesDate.Month = 2
select s.Amount).Sum();
現在,您可以進行靈活的,如:
.. GetData(TimePeriod period)
{
return (from s in Sales
where
(
//timeframe is enum of month, day, hour
period.TimeFrame == TimeFrame.Month
&& s.SalesDate.Year == period.year
&& s.SalesDate.Month == period.Month
)
||
(
period.TimeFrame == TimeFrame.Day
&& s.SalesDate.Year == period.Year
&& s.SalesDate.Month == period.Month
&& s.SalesDate.Day == period.Day
)
||
(
..
)
select s);
}
我不知道的是你是否可以使用一個枚舉的唯一的事評價;您可以添加布爾每個條件:
bool isMonth = (period.TimeFrame == Timeframe.Month);
,並讓您使用isMonth & &,而不是period.TimeFrame == Timeframe.Month改變查詢。
這就像您可以得到的一樣靈活。唯一的其他方式,更加靈活的方式是通過每個記錄的彙總數據手動循環,並創建一個通用的方法...
希望所有有道理:-)
是的,我在同一時間做了類似的事情 – 2010-01-14 13:52:01
通過的「bin」,你是指小組嗎? (懺悔;我幾乎將標題編輯爲「數據綁定...」; p) – 2010-01-14 12:44:05
我*編輯了標題爲「數據綁定...」。對不起... – M4N 2010-01-14 12:46:58
等一下?這不是關於數據綁定?什麼是數據分類? – 2010-01-14 12:52:52