2017-10-26 3 views
1


は私が年の各月の総収入を得るために、クエリを作っvb.net

でチャートに総ヶ月の収入を置きます。
私はvb.netとMySQLの新機能です。誰かが同じ結果を与えるより短いクエリを知っていれば、どうかしてください。
Xを月に、Yを総所得とするチャートを作成したいと思います。
マイクエリ:

query = "SELECT (
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '1' 
)as January, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '2' 
) AS February, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '3' 
)as March, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '4' 
) AS April, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '5' 
)as May, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '6' 
) AS June, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '7' 
)as July, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '8' 
) AS August, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '9' 
)as September, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '10' 
) AS October, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '11' 
)as November, 
(
SELECT SUM(Amount_income_table) 
FROM bacci.income_table 
where MONTH(Date_income_table) = '12' 
) AS December;" 

チャートのコードは次のとおりです。

Comand = New MySqlCommand(query, connection) 
      READER = Comand.ExecuteReader 
      While READER.Read 
       ChartIncomeYear.Series("Incomes").Points.AddXY(READER.GetString("Date_income_table"), READER.GetInt32("Amount_income_table")) 

      End While 

私はあなたが直接取得するMONTHNAME機能を使用することができ、MySQLデータベースおよびVisual Basic 2017

+4

私は、この質問を審査を求めているため、トピックをオフにすることに投票しています。 https://codereview.stackexchange.com – Codexer

+0

に適しています。コードレビューについて知りませんでした。私の質問を病気に入れました:)ありがとうございました。 – sako

+0

ようこそ、喜んで助けになります。 – Codexer

答えて

2

を使用していますその月の名前とグループ。

フィドルリンクが動作していない何らかの理由で

http://sqlfiddle.com/#!9/62f4ba/1

、ここでは全体のコードは

CREATE TABLE income_table (amt INT, amt_date DATE); 

    INSERT INTO income_table 
    VALUES (12500,'2017-01-01'); 
     INSERT INTO income_table 
    VALUES (2500,'2017-01-10'); 

    INSERT INTO income_table 
    VALUES (12500,'2017-02-01'); 

     INSERT INTO income_table 
    VALUES (3700,'2017-02-08'); 

    INSERT INTO income_table 
    VALUES (12500,'2017-03-01'); 
    INSERT INTO income_table 
    VALUES (12500,'2017-04-01'); 
    INSERT INTO income_table 
    VALUES (12500,'2017-05-01'); 
    INSERT INTO income_table 
    VALUES (12500,'2017-06-01'); 

はフィドルに参照してください。

+0

あなたは魅力のようにクエリの仕事をしてくれてありがとう:) – sako

関連する問題