2012-04-30 4 views
0

나는 몇 시간 동안이 질문에 답하고 여전히이를 수행하는 방법을 찾을 수 없습니다. 매년 품목의 총 판매량을 어떻게 얻습니까?ASP .NET SQL 쿼리 SUM, TOTAL & NEW COLUMN

는 내가 지금까지 가지고하는 것은 이것이다 :

SQLCommand.CommandText = @"SELECT SUM SalesNo AS TotalYearSales FROM SalesTable WHERE Product = " + ddItems.SelectedItem + "";. 

테이블 제목은 제품, 년, SalesNo를 다음과 같습니다.

+4

** 경고 ** 귀하의 코드는 SQL 주입 공격에 취약합니다. –

답변

0
SQLCommand.CommandText = @"SELECT DatePart(YY, SalesDate), SUM(SalesNo) AS TotalYearSales FROM SalesTable WHERE Product = ? GROUP BY DatePart(YY, SalesDate) "; 
SQLCommand.Parameters.Add("parmForProduct", ddItems.SelectedItem); 

다니엘이 지적했듯이, 당신은 SQL- 주입 공격에 대해 개방적이고 매개 변수화 된 쿼리를 사용해야합니다.

연도 별 합계를 얻으려면 해당 연도를 쿼리의 기초로 추가해야합니다. 테이블에 거래가 기반으로하는 "날짜"열을 모르므로 조정해야합니다. "?" 쿼리는 즉시 추가 된 매개 변수에 대한 "자리 표시 자"입니다. 매개 변수는 쿼리에 나열된 순서와 동일한 순서로 추가해야합니다. 일부 SQL 엔진은 "명명 된"매개 변수를 허용하고 "@ProductIWant"와 같은 것을 사용합니다. 매개 변수는 동일한 값을 사용합니다 ...

특정 제품 만 쿼리하면되므로 목록 .. 당신이 모든 제품을 1 년 단위로 분류하고 싶지 않다면.

0

뭔가

Select Year(SalesDate),Sum(SalesNo) From SalesTable where Product = "Navel Defluffer" 
Group By Year(SalesDate) 

추천하고 @Daniel이 사용하게 변수를 쿼리하지 문자열 연결 언급있다.