C#으로 사용자 정의보고 응용 프로그램을 만들고 일부 데이터를 집계해야합니다.SQL 또는 Linq로 데이터 비닝
간단하게 만들어 보겠습니다. 1 년 동안 10,000 개의 판매량이 있다고 가정 해 보겠습니다. 말, 월, 일 또는 시간별로 데이터를 저장하는 일반적인 방법이 필요합니다. 따라서 각 빈은 해당 기간 내의 모든 판매를 합산합니다.
누구도 SQL 또는 Linq에서 이와 같은 쿼리를 작성한 적이 있습니까?
전통적으로C#으로 사용자 정의보고 응용 프로그램을 만들고 일부 데이터를 집계해야합니다.SQL 또는 Linq로 데이터 비닝
간단하게 만들어 보겠습니다. 1 년 동안 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 사용하도록 쿼리를 변경합니다.
최대한 유연하게 처리 할 수 있습니다. 유일한 다른 방법은 데이터를 집계 각 레코드를 수동 루프에 심지어 더 유연하게, 그리고 그것을위한 일반적인 방법을 만들 수 있습니다 ...
희망 모두가 "빈"으로
긍정, 나는 비열한 시간에 유사한 무엇인가했다 –
:-) 의미가 있는지, 그룹을 의미합니까? (자백, "데이터 바인딩 ..."에 대한 제목을 거의 편집했습니다.) p) –
"데이터 바인딩 ..."이라는 제목을 편집했습니다. 죄송합니다 ... – M4N
기다리시겠습니까? 이것은 데이터 바인딩에 관한 것이 아닙니다. Data Binning이란 무엇입니까? –