C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
Re[3]: DataTable のLeft Join とGroup by
(過去ログ 135 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■79703
/ inTopicNo.1)
DataTable のLeft Join とGroup by
▼
■
□投稿者/ RA
(1回)-(2016/05/07(Sat) 18:57:50)
分類:[VB.NET/VB2005 以降]
2つのDataTableをLeft Join して、新たなDataTableに格納する方法がありますか?
select * from DataTable1 Left Join DataTable2 on 結合条件
また、DataTableをGroup byして、countやsumする方法を教えていただけないでしょうか?
宜しくお願いします。
環境は、VB.Net2010です
引用返信
編集キー/
編集
■79704
/ inTopicNo.2)
Re[1]: DataTable のLeft Join とGroup by
▲
▼
■
□投稿者/ WebSurfer
(906回)-(2016/05/07(Sat) 21:32:57)
■
No79703
(RA さん) に返信
> 2つのDataTableをLeft Join して、新たなDataTableに格納する方法がありますか?
DataTable を作る元が何だか分かりませんが、SQL Server とか MySQL とかなら
SELECT クエリで Left Join して、それから DataTable を作るのがよさそうですが、
それができない事情があるのですか?
局所的な部分の質問だけではなく、何故そういうことをしたいのか、全体的なシナリ
オを含めて質問者さんのやりたいことを書くことをお勧めします。そうすれば局所的
なところは無理でも、やりたいことはこうすれば実現できるというような代案も出て
くるかも知れません。
引用返信
編集キー/
編集
■79716
/ inTopicNo.3)
Re[2]: DataTable のLeft Join とGroup by
▲
▼
■
□投稿者/ RA
(2回)-(2016/05/08(Sun) 20:59:03)
■
No79704
(WebSurfer さん) に返信
> ■
No79703
(RA さん) に返信
>
>>2つのDataTableをLeft Join して、新たなDataTableに格納する方法がありますか?
>
> DataTable を作る元が何だか分かりませんが、SQL Server とか MySQL とかなら
> SELECT クエリで Left Join して、それから DataTable を作るのがよさそうですが、
> それができない事情があるのですか?
accessで作成されたワークテーブル同志を、Left Joinしたり、Group byして、countやsumして帳票を出そうとしています。
それを、postgresとDataTableを使って帳票を出そうとしています。
accessで作成されたワークテーブルを普通にSQLを書いていたら、
時間がかかるため、DataTableとVb側の処理でやろうとしています。
ところが、DataTableをLeft Joinしたり、Group byする方法がわからなく投稿しました
宜しくお願いします
引用返信
編集キー/
編集
■79721
/ inTopicNo.4)
Re[3]: DataTable のLeft Join とGroup by
▲
▼
■
□投稿者/ WebSurfer
(910回)-(2016/05/09(Mon) 12:42:27)
■
No79716
(RA さん) に返信
> ところが、DataTableをLeft Joinしたり、Group byする方法がわからなく投稿しました
私が知らないだけという可能性は否定し切れませんが、基本的にはできないと思います。
リレーションシップを使って擬似的(ウラワザ的?)に JOIN する方法はあるそうですが。
【VB.NET】2つのDataTableを結合して1つのDataTableにする
http://akirwn.blog79.fc2.com/blog-entry-65.html
質問者さんの言う、
> accessで作成されたワークテーブル同志を、Left Joinしたり、Group byして、countやsum
> して帳票を出そうとしています。
> それを、postgresとDataTableを使って帳票を出そうとしています。
というのがどういうことか理解できないので、質問者さんの目的に合うかどうか分かりませ
んが、環境が .NET 3.0 以降なら LINQ を使うことを考えてはいかがですか?
DataTableのJOINの代わりにLINQ to DataSetを使う
http://blog.jhashimoto.net/entry/20110711/1310342463
方法 : 左外部結合を実行する (C# プログラミング ガイド)
https://msdn.microsoft.com/ja-jp/library/bb397895.aspx
方法: クエリ結果をグループ化する (C# プログラミング ガイド)
https://msdn.microsoft.com/ja-jp/library/bb545971.aspx
ただ、
> accessで作成されたワークテーブルを普通にSQLを書いていたら、
> 時間がかかるため、DataTableとVb側の処理でやろうとしています。
とのことですが、「普通にSQLを書いて」(Access で普通に Left Joinしたり、Group by
したりした SELECT クエリを書いて)それから DataTable を作成した方が、圧倒的に時間
や苦労は少ないと思うのですが・・・
引用返信
編集キー/
編集
■79731
/ inTopicNo.5)
Re[3]: DataTable のLeft Join とGroup by
▲
▼
■
□投稿者/ とくま
(8回)-(2016/05/10(Tue) 10:29:59)
■
No79716
(RA さん) に返信
もともと SQL はデータベースの機能ですから、ローカルの
VB だけでもできるなら冗長ですよね。どこでもできた方が
便利という意見もあるでしょうが、その分の開発費がどこ
かで徴収されているわけで。
まぁ Linq をはじめとする機能追加はたくさんあるので
出来る方法もあるのかもしれませんが。
(知っている人が紹介してくれれば利用する事もあるけど
自分で調べて紹介っていう気にまではならないです)
>accessで作成されたワークテーブルを普通にSQLを書いていたら、
>時間がかかるため
データ件数が多いのに直接リンクテーブルを参照して
加工しているから時間が掛かっているというのであれば、
本来の手法は、ストアドなどで加工した結果テーブルのみ
参照するという事になるのではないでしょうか。
(VB からはストアドのキックと結果テーブルの取得のみ)
というかポスグレにデータが全部入っているなら Access
いらないんじゃないかと言う。。。その辺が既存システムの
改修だからとかローカルファイルをAccessで読込んでるから
とかそういう事情も含めて検討の余地がありそうですん。
今出ている情報だけだと、
・Accessいらない
・VBで加工なんかしない(データベースでやる)
のが普通(=情報がたくさんあって回答がつく方法)の気がします。
従来の手法も含めてどういう手法があって、それぞれの長短
把握した上でシステム設計した結果の今の開発作業ですか?
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-