0

これは、Winforms/C#/MYSQL に関連しています。次の表があります。

正味金額 / DATE

50 /2013-3-15

40/ 2013-11-10

30 / 2013-3-25

このプログラムでは、ユーザーがデータを表示したい月を選択できます。理想的には、出力は、正味額と月の合計を示すグラフ (方法は知っています) である必要があります。出力は次のようになります。

正味額/月

80/3月

40/11月

誰かが私がこれを試すことを提案しました:

var selectdataforGraph = "SELECT SUM(AMOUNT_NET) AS Amount_Net, MONTH(date_Check) as Month FROM testingproject.incomeinformation WHERE";
                var monthList = string.Join(",", selectedMonth);
                selectdataforGraph += " YEAR(date_check) = " + selected_year;
                selectdataforGraph += " AND MONTH(date_check) in (" + monthList + ")";

しかし、データベースでクエリを実行すると

SELECT SUM(Amount_Net) AS Amount_Net, Month(date_check) AS Selected_Month FROM testingproject.incomeinformation WHERE YEAR(date_check) AND MONTH(date_check) in (1,11);

結果は、次のような両方の月の合計 Amount_Net Sum です。

Amount_Net/Selected_Month

120/11

月ごとに既に計算された正味額を使用して別のテーブルを作成しようとしましたが、場合によっては複数の月を選択する必要があるため、月が含まれる列は上記のクエリの一部の月が varchar であり、機能しません. 日付列を使用して新しいテーブルを再設計することもできますが、最初の応答に非常に近いように感じます。また、SQL インジェクションを回避するためにパラメーターを使用する必要があることも知っていますが、これは問題を簡単に説明するためのものです。

4

1 に答える 1