0

私はこれに何時間も住んでいますが、それでもこれを行う方法を見つけることができません。毎年のアイテムの総売上高をどのように取得しますか。

私がこれまでに得たものはこれです:

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

表の見出しは次のとおりです。製品、年、販売番号。

4

2 に答える 2

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」のようなものを使用し、パラメーターは同じものを使用します...

特定の製品のみをクエリしているので、すべての製品を年ごとにグループ化する場合を除いて、リストに含める必要はありません。

于 2012-04-30T17:17:16.647 に答える
0

何かのようなもの

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

@Danielがほのめかしているように、文字列の連結ではなく、パラメータ化されたクエリを使用します。

于 2012-04-30T17:17:28.017 に答える