C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: SQLServer2008での集計方法を教えてください


(過去ログ 65 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■38081 / inTopicNo.1)  SQLServer2008での集計方法を教えてください
  
□投稿者/ ひでこ (5回)-(2009/07/06(Mon) 20:07:14)

分類:[データベース全般] 

お世話になります。
先日データベースの件でお世話になりました。
環境は Vista VisualC# SQLServer2008 です。
集計方法の件での方法ですがデータベースの方での集計を選びました。
ところがACCESSではうまくいったのですがSQLServerでうまくいきません

private void kingDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
      //この辺にどのように書くかわからない
    select code,name,nyuko,syukko,nyuko - syukko as 'zaiko' from king //SQLServerのクエリではこのSQL文でOKです
        }

nyuko(入庫) - syukko(出庫) = zaiko(在庫) という式を完成させたいと思います。
ボタンをクリックすると計算ができるようにしたいと思っています。
また、クリックなしでも計算ができるようにしたいとも思っています。
よろしくお願いします


引用返信 編集キー/
■38088 / inTopicNo.2)  Re[1]: SQLServer2008での集計方法を教えてください
□投稿者/ オショウ (258回)-(2009/07/06(Mon) 21:08:21)
2009/07/06(Mon) 21:16:10 編集(投稿者)

No38081 (ひでこ さん) に返信
> nyuko(入庫) - syukko(出庫) = zaiko(在庫) という式を完成させたいと思います。
> ボタンをクリックすると計算ができるようにしたいと思っています。
> また、クリックなしでも計算ができるようにしたいとも思っています。
> よろしくお願いします

  SQLの話なのか、DataGridViewの話なのか、どちらでしょう?

  DB的に行うならば、DataGridView上でのCellContentClickイベントとは
  関わらないし・・・

  DataGridViewのセルをクリックしたイベントで計算させたいのであれば、
  どちらかと言うとSQL文的な話ではないし・・・

  どっちで行いたいのでしょうか?
  またどういう表示をさせたいのでしょうか?

  付け加えるならば、ACCESSでうまくいっていたと言うのは、OleDbで
  できていたと言うことならば、SqlClientに置き換えるだけで、そう
  互換性の無い修正は無いので、ACCESSからSQL Serverに変更しても
  そのままDataGridViewに表示できますが・・・

※ 私ならば、SQL文でデータの取得と計算結果を1発で得て、その
  レコードをDataGridViewに表示する。と言う方法で実現しますが。
  表のセルをクリックすると言う行為に何か別の意図があるのでしょ
  うか?

以上。
引用返信 編集キー/
■38090 / inTopicNo.3)  Re[2]: SQLServer2008での集計方法を教えてください
□投稿者/ ひでこ (6回)-(2009/07/06(Mon) 21:12:30)
No38088 (オショウ さん) に返信
> ■No38081 (ひでこ さん) に返信
GridViewです。
データベース上で集計をしたものをそのままGridViewに表示した
いと思っています

>>nyuko(入庫) - syukko(出庫) = zaiko(在庫) という式を完成させたいと思います。
>>ボタンをクリックすると計算ができるようにしたいと思っています。
>>また、クリックなしでも計算ができるようにしたいとも思っています。
>>よろしくお願いします
>
>   SQLの話なのか、DataGridViewの話なのか、どちらでしょう?
>
>   DB的に行うならば、DataGridView上でのCellContentClickイベントとは
>   関わらないし・・・
>
>   DataGridViewのセルをクリックしたイベントで計算させたいのであれば、
>   どちらかと言うとSQL文的な話ではないし・・・
>
>   どっちで行いたいのでしょうか?
>   またどういう表示をさせたいのでしょうか?
>
> 以上。
引用返信 編集キー/
■38094 / inTopicNo.4)  Re[3]: SQLServer2008での集計方法を教えてください
□投稿者/ ひでこ (7回)-(2009/07/06(Mon) 21:43:38)
No38090 (ひでこ さん) に返信
> ■No38088 (オショウ さん) に返信
>>■No38081 (ひでこ さん) に返信




> --------------------------------
nyuko | syukko | zaiko |
--------------------------------
100 | 20 | 80 |
--------------------------------
200 | 50 |150 |
--------------------------------
となるはずが

> --------------------------------
nyuko | syukko | zaiko |
--------------------------------
100 | 20 |   |
--------------------------------
200 | 50 |    |
--------------------------------


です。
> データベース上で集計をしたものをそのままGridViewに表示した
> いと思っています
>
> >>nyuko(入庫) - syukko(出庫) = zaiko(在庫) という式を完成させたいと思います。
> >>ボタンをクリックすると計算ができるようにしたいと思っています。
> >>また、クリックなしでも計算ができるようにしたいとも思っています。
> >>よろしくお願いします
>>
>>  SQLの話なのか、DataGridViewの話なのか、どちらでしょう?
>>
>>  DB的に行うならば、DataGridView上でのCellContentClickイベントとは
>>  関わらないし・・・
>>
>>  DataGridViewのセルをクリックしたイベントで計算させたいのであれば、
>>  どちらかと言うとSQL文的な話ではないし・・・
>>
>>  どっちで行いたいのでしょうか?
>>  またどういう表示をさせたいのでしょうか?
>>
>>以上。
引用返信 編集キー/
■38095 / inTopicNo.5)  Re[3]: SQLServer2008での集計方法を教えてください
□投稿者/ オショウ (259回)-(2009/07/06(Mon) 21:46:30)
> データベース上で集計をしたものをそのままGridViewに表示した
> いと思っています

  それなら・・・

        private void button1_Click(object sender, EventArgs e)
        {
            Boolean bRet;

            using(SqlConnection SqlDB =new SqlConnection (GetDBConnectString())){

                try
                {
                    SqlDB.Open ();
                    bRet=true;
                }catch{
                    bRet=false;
                }

                if (bRet)
                {
                    StringBuilder sb;

                    sb = new StringBuilder();

                    sb.Length = 0;
                    sb.Append("select ");
                    sb.Append("code,");
                    sb.Append("name,");
                    sb.Append("nyuko,");
                    sb.Append("syukko,");
                    sb.Append("nyuko - syukko as 'zaiko' ");
                    sb.Append("from ");
                    sb.Append("king");

                    using (DataSet ds = new DataSet())
                    {
                        using (SqlDataAdapter da = new SqlDataAdapter())
                        {
                            using (SqlCommand sc = SqlDB.CreateCommand())
                            {
                                sc.CommandType = CommandType.Text;
                                sc.CommandTimeout = SqlDB.ConnectionTimeout;
                                sc.CommandText = sb.ToString();

                                da.SelectCommand = sc;

                                da.Fill(ds, "king");
                            }
                        }

                        dataGridView1.DataSource = ds;
                        dataGridView1.DataMember = "king";
                        dataGridView1.Refresh();
                    }

                    SqlDB.Close();
                }
            }
        }

        private String GetDBConnectString()
        {
            SqlConnectionStringBuilder sb;

            sb = new SqlConnectionStringBuilder();

            sb.DataSource ="LocalHost";
            sb.InitialCatalog ="TestDB";
            sb.IntegratedSecurity = false;
            sb.UserID ="hoge";
            sb.Password ="hogehoge";
            sb.ConnectTimeout = 10;

            return sb.ToString ();

        }

※ 実行確認しないままコード掲載しています。
  適宜修正願います。エラーしたらすいません・・・

こんなんで如何?

以上。

引用返信 編集キー/
■38096 / inTopicNo.6)  Re[4]: SQLServer2008での集計方法を教えてください
□投稿者/ オショウ (261回)-(2009/07/06(Mon) 21:52:51)
追伸
一応、動作確認しましたが、正しく集計結果も表示されました。

以上。
引用返信 編集キー/
■38097 / inTopicNo.7)  Re[4]: SQLServer2008での集計方法を教えてください
□投稿者/ ひでこ (8回)-(2009/07/06(Mon) 21:52:53)
No38094 (ひでこ さん) に返信
> ■No38090 (ひでこ さん) に返信
>>■No38088 (オショウ さん) に返信
> >>■No38081 (ひでこ さん) に返信
>
すみません
作成途中でアップしてしまいました


--------------------------------
nyuko | syukko | zaiko |
--------------------------------
100 | 20 | 80 |
--------------------------------
200 | 50 |150 |
--------------------------------
となるはずが

--------------------------------
nyuko | syukko | zaiko |
--------------------------------
100 | 20 |   |
--------------------------------
200 | 50 |    |
--------------------------------

となってしまいます
SQLのnyuko - syukko = zaikoの計算式が表とセットでGridViewに移行して表示して欲しいのです
素人でうまく説明できなくてすみません。



>>データベース上で集計をしたものをそのままGridViewに表示した
>>いと思っています
>>
>>>>nyuko(入庫) - syukko(出庫) = zaiko(在庫) という式を完成させたいと思います。
>>>>ボタンをクリックすると計算ができるようにしたいと思っています。
>>>>また、クリックなしでも計算ができるようにしたいとも思っています。
>>>>よろしくお願いします
> >>
> >>  SQLの話なのか、DataGridViewの話なのか、どちらでしょう?
> >>
> >>  DB的に行うならば、DataGridView上でのCellContentClickイベントとは
> >>  関わらないし・・・
> >>
> >>  DataGridViewのセルをクリックしたイベントで計算させたいのであれば、
> >>  どちらかと言うとSQL文的な話ではないし・・・
> >>
> >>  どっちで行いたいのでしょうか?
> >>  またどういう表示をさせたいのでしょうか?
> >>
> >>以上。
引用返信 編集キー/
■38098 / inTopicNo.8)  Re[5]: SQLServer2008での集計方法を教えてください
□投稿者/ ひでこ (9回)-(2009/07/06(Mon) 21:55:29)
No38097 (ひでこ さん) に返信
> ■No38094 (ひでこ さん) に返信
>>■No38090 (ひでこ さん) に返信
> >>■No38088 (オショウ さん) に返信
>>>>■No38081 (ひでこ さん) に返信

ありがとうございます
送って頂いたコード試させていただきます


>>
> すみませんが
> 作成途中でアップしてしまいました
>
>
> --------------------------------
> nyuko | syukko | zaiko |
> --------------------------------
> 100 | 20 | 80 |
> --------------------------------
> 200 | 50 |150 |
> --------------------------------
> となるはずが
>
> --------------------------------
> nyuko | syukko | zaiko |
> --------------------------------
> 100 | 20 |   |
> --------------------------------
> 200 | 50 |    |
> --------------------------------
>
> となってしまいます
> SQLのnyuko - syukko = zaikoの計算式が表とセットでGridViewに移行して表示して欲しいのです
> 素人でうまく説明できなくてすみません。
>
>
>
> >>データベース上で集計をしたものをそのままGridViewに表示した
> >>いと思っています
> >>
> >>>>nyuko(入庫) - syukko(出庫) = zaiko(在庫) という式を完成させたいと思います。
> >>>>ボタンをクリックすると計算ができるようにしたいと思っています。
> >>>>また、クリックなしでも計算ができるようにしたいとも思っています。
> >>>>よろしくお願いします
>>>>
>>>>  SQLの話なのか、DataGridViewの話なのか、どちらでしょう?
>>>>
>>>>  DB的に行うならば、DataGridView上でのCellContentClickイベントとは
>>>>  関わらないし・・・
>>>>
>>>>  DataGridViewのセルをクリックしたイベントで計算させたいのであれば、
>>>>  どちらかと言うとSQL文的な話ではないし・・・
>>>>
>>>>  どっちで行いたいのでしょうか?
>>>>  またどういう表示をさせたいのでしょうか?
>>>>
>>>>以上。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -