0
私のプログラムのこのモジュールの部分であなたの助けが必要です。 i "は、コード値" 2つのテーブル、を有する"コード、説明、値"とテーブルBを有するTableAのを有する以下例:SQLテーブルをループして既存の値を集計する方法
テーブルA
code description value
-----------------------------
CD1 BOOKS
CD2 BREADS
CD3 PHONES
CD4 FISH
をテーブルB
code value1 value2 value3 value4
--------------------------------------
cd1 12 21 10 21
cd2 9 10 10 11
cd3 19 11 29 13
cd4 10 12 22 12
アイデアを更新する表A TableBのTableA.code = TableB.codeの値を使用したが、値がテーブルAで自分のしているならば、TableBの古い値フィールドに新しい値を追加することによって、TableAの Valueフィールドの内容を更新します。 code = TableA.code。私は次のコードを書いていますが、それは私のコードです:
DataTable dt = GetDatafromDatabase(); //===== returns a DataTable
string SQLT = "SELECT * FROM tbl_TempReport";
if (cn.State == ConnectionState.Closed) {cn.Open(); }
SqlCommand cmdT = new SqlCommand(SQLT, cn);
while (rt.Read())
{
// For each row, print the values of each column.
foreach (DataColumn column in dt.Columns)
{
foreach (DataRow row in dt.Rows)
{
colname = column.ColumnName.ToString();
string m_Code = rt["code"].ToString();
if (m_Code == colname) {
if (m_Code == colname && mValue > 0) { mValue += Convert.ToInt32(row[column].ToString()); } else { mValue = Convert.ToInt32(row[column].ToString()); }
//============ insert into tbl_TempReport to match the appropriate column
string SQLP = "UPDATE tbl_TempReport SET VALUEP = @VALUEP WHERE code = @code";
SqlCommand cmdp = new SqlCommand(SQLP, cn);
cmdp.Parameters.AddWithValue("@VALUEP", SqlDbType.Int).Value = mValue;
cmdp.Parameters.AddWithValue("@code", SqlDbType.NVarChar).Value = rt["code"].ToString();
cmdp.ExecuteNonQuery();
}
}
}
}
私はこれを達成するためにあなたの助けが必要です。あなた
ゾハルPeledを、支援していただきありがとうございます。問題は、私は3つの(3)列の "コード、説明、値p"と2つの(2)列 "コード、値"これらのすべてのテーブルが2000レコードを持つTableBを持つ2つのテーブルを持っているということです。その考え方は、TableAのコード一致コードの検索TableBです。TableAのValuepをTableBの値で更新しますが、TableAに既にValuep列のデータがある場合は、現在のデータに合計します。すべての2000年の記録についてそれを繰り返す。私がやったことは2つのレコードにしか影響しません。助けてください – Abraham1973
私の編集した答えを参照してください。 –