VB.NETでLinqを使用してデータブルからピボットテーブルを取得するにはどうすればよいですか?

エルカン・セイラン

私はこのようなデータテーブルを持っています:

name    |   color of name
----------------------
x       |   red
y       |   blue
z       |   yellow
x       |   yellow
y       |   red

このテーブルのピボットを次のように取得する必要があります。

name    |   red     |   blue    |   yellow  | total
-------------------------------------------------------
x       |   1       |   0       |   1       |   2
y       |   1       |   1       |   0       |   2
z       |   0       |   0       |   1       |   1

VB.NETのLinqでこれを行うにはどうすればよいですか?

色は動的ではありません。私はそれらをハードコードされたクエリに入れることができます。

したがって、すべてのレコードを名前と列のレコードの色の合計でグループ化する必要があります。次に、合計色の合計(最初の色を手伝ってくれれば、合計を計算できます:p)

NetMage

DataTable列の存在に基づいて交差値を作成し、合計列を追加するピボット拡張メソッドのバリエーションを作成しました

public static class DataTableExt {
    public static DataTable PivotByOverWithTotal(this DataTable dt, string ByRowFieldName, string OverColFieldName) {
        var res = new DataTable();
        if (dt.Rows.Count > 0) {
            var dtg = dt.AsEnumerable().GroupBy(r => r[ByRowFieldName], r => r[OverColFieldName].ToString());

            res.Columns.Add(ByRowFieldName, dt.Columns[ByRowFieldName].DataType);
            var colNames = dtg.SelectMany(rg => rg).Distinct().OrderBy(n => n);
            foreach (var n in colNames)
                res.Columns.Add(n, typeof(int));
            res.Columns.Add("Total", typeof(int));

            foreach (var rg in dtg) {
                var newr = res.NewRow();
                newr[ByRowFieldName] = rg.Key;
                int total = 0;
                foreach (var rv in colNames) {
                    var val = rg.Contains(rv) ? 1 : 0;
                    newr[rv] = val;
                    total += val;
                }
                newr["Total"] = total;
                res.Rows.Add(newr);
            }
        }
        return res;
    }
}

あなたはそれをこのように使います:

var ansdt = src.PivotByOverWithTotal("name", "color");

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

データテーブルvb.netから列と行の合計を合計するにはどうすればよいですか?

分類Dev

VB.NETを使用してASP.NETのデータベースブールフィールドに基づいてボタンの背景色を変更するにはどうすればよいですか?

分類Dev

テーブル内のすべてのデータを削除し、VB.NETを使用してAccessデータベースに新しいレコードを挿入するにはどうすればよいですか?

分類Dev

VBのデータテーブルの既存の列に基づいて新しい列を追加するにはどうすればよいですか?

分類Dev

vb.netを使用してGoogleドライブにファイルをアップロードするにはどうすればよいですか?

分類Dev

vb.netを使用してMSOneドライブにファイルをアップロードするにはどうすればよいですか?

分類Dev

VB.Netを使用して、ポップアップメッセージボックスに含まれるコントロールのプロパティを取得するにはどうすればよいですか。

分類Dev

ローカルデータテーブルをクエリして、VB.netのデータテーブルに情報を返すにはどうすればよいですか

分類Dev

VB.Net MVCで、モデルを使用してリストをビューに渡し、表示するにはどうすればよいですか?

分類Dev

vb.netを使用して、差分テーブル列から単一のリストビュー列に3つの単語を表示するにはどうすればよいですか?

分類Dev

Excel VBを使用して、テキストボックスが2つ以上のユーザーフォームからのものであるテキストボックスにデータを入力するよりも優れたデータを入力するにはどうすればよいですか?

分類Dev

VB.NETでタブページのインデックスを名前で取得するにはどうすればよいですか?

分類Dev

オブジェクト(カスタムデータ型を含む)をVB.netでシリアル化して、JSONに変換できるようにするにはどうすればよいですか?

分類Dev

Json.netを使用してVb.netでJSONオブジェクトを逆シリアル化するにはどうすればよいですか?

分類Dev

VB.NETを使用してXMLから属性値を取得するにはどうすればよいですか?

分類Dev

データベースとテーブルがvb.netプロジェクトのSQLサーバーに存在するかどうかを確認するにはどうすればよいですか?

分類Dev

実行時にキーボードを使用してVB.netのDataGridViewセルを編集するにはどうすればよいですか?

分類Dev

vb.netでヘッダー付きのdatagridviewテーブルを印刷するにはどうすればよいですか?

分類Dev

私はVB(Visual Studio)を初めて使用し、データテーブル「ClientInfo」から昇順で列(2)「LastName」を取得しようとしています。

分類Dev

VB.netのdatagridviewのデータのすべての行に2つのボタンを挿入してmysqlからデータを取得するにはどうすればよいですか?

分類Dev

vb.netのWebサイトからデータをプルするにはどうすればよいですか

分類Dev

vb.netを使用してX、Yのピクセルの色を取得するにはどうすればよいですか?

分類Dev

vb.netでサーバーのローカルドライブパスを取得するにはどうすればよいですか?

分類Dev

linqを使用してvb.netのキーと値のペアのリストから一致するキーから値を取得するにはどうすればよいですか?

分類Dev

VB.NET WPFデータグリッドから列の値を取得するにはどうすればよいですか?

分類Dev

VB.NETのスプレッドシートライトを使用して、あるExcelファイルを別のExcelファイルにコピーするにはどうすればよいですか?

分類Dev

vb.netの資格情報を使用してリモートフォルダーにアクセスするにはどうすればよいですか?

分類Dev

VB.NETを使用してファイルを削除するにはどうすればよいですか?

分類Dev

あるテーブルのSQL合計から取得した値をvbの別のテーブルに挿入するにはどうすればよいですか?

Related 関連記事

  1. 1

    データテーブルvb.netから列と行の合計を合計するにはどうすればよいですか?

  2. 2

    VB.NETを使用してASP.NETのデータベースブールフィールドに基づいてボタンの背景色を変更するにはどうすればよいですか?

  3. 3

    テーブル内のすべてのデータを削除し、VB.NETを使用してAccessデータベースに新しいレコードを挿入するにはどうすればよいですか?

  4. 4

    VBのデータテーブルの既存の列に基づいて新しい列を追加するにはどうすればよいですか?

  5. 5

    vb.netを使用してGoogleドライブにファイルをアップロードするにはどうすればよいですか?

  6. 6

    vb.netを使用してMSOneドライブにファイルをアップロードするにはどうすればよいですか?

  7. 7

    VB.Netを使用して、ポップアップメッセージボックスに含まれるコントロールのプロパティを取得するにはどうすればよいですか。

  8. 8

    ローカルデータテーブルをクエリして、VB.netのデータテーブルに情報を返すにはどうすればよいですか

  9. 9

    VB.Net MVCで、モデルを使用してリストをビューに渡し、表示するにはどうすればよいですか?

  10. 10

    vb.netを使用して、差分テーブル列から単一のリストビュー列に3つの単語を表示するにはどうすればよいですか?

  11. 11

    Excel VBを使用して、テキストボックスが2つ以上のユーザーフォームからのものであるテキストボックスにデータを入力するよりも優れたデータを入力するにはどうすればよいですか?

  12. 12

    VB.NETでタブページのインデックスを名前で取得するにはどうすればよいですか?

  13. 13

    オブジェクト(カスタムデータ型を含む)をVB.netでシリアル化して、JSONに変換できるようにするにはどうすればよいですか?

  14. 14

    Json.netを使用してVb.netでJSONオブジェクトを逆シリアル化するにはどうすればよいですか?

  15. 15

    VB.NETを使用してXMLから属性値を取得するにはどうすればよいですか?

  16. 16

    データベースとテーブルがvb.netプロジェクトのSQLサーバーに存在するかどうかを確認するにはどうすればよいですか?

  17. 17

    実行時にキーボードを使用してVB.netのDataGridViewセルを編集するにはどうすればよいですか?

  18. 18

    vb.netでヘッダー付きのdatagridviewテーブルを印刷するにはどうすればよいですか?

  19. 19

    私はVB(Visual Studio)を初めて使用し、データテーブル「ClientInfo」から昇順で列(2)「LastName」を取得しようとしています。

  20. 20

    VB.netのdatagridviewのデータのすべての行に2つのボタンを挿入してmysqlからデータを取得するにはどうすればよいですか?

  21. 21

    vb.netのWebサイトからデータをプルするにはどうすればよいですか

  22. 22

    vb.netを使用してX、Yのピクセルの色を取得するにはどうすればよいですか?

  23. 23

    vb.netでサーバーのローカルドライブパスを取得するにはどうすればよいですか?

  24. 24

    linqを使用してvb.netのキーと値のペアのリストから一致するキーから値を取得するにはどうすればよいですか?

  25. 25

    VB.NET WPFデータグリッドから列の値を取得するにはどうすればよいですか?

  26. 26

    VB.NETのスプレッドシートライトを使用して、あるExcelファイルを別のExcelファイルにコピーするにはどうすればよいですか?

  27. 27

    vb.netの資格情報を使用してリモートフォルダーにアクセスするにはどうすればよいですか?

  28. 28

    VB.NETを使用してファイルを削除するにはどうすればよいですか?

  29. 29

    あるテーブルのSQL合計から取得した値をvbの別のテーブルに挿入するにはどうすればよいですか?

ホットタグ

アーカイブ