- PR -

SQLでselectされたデータを基にさらにselectさせる

1
投稿者投稿内容
みきてぃ
会議室デビュー日: 2005/09/16
投稿数: 14
投稿日時: 2005-09-16 00:29
はじめての書き込みになります。

VB.NETとXMLとOracleを使用してウェブ画面上でデータを表示することができるようになる処理プログラムを考えております。

現在、あるテーブルからselect文で

図1
A1,B1,C1
A2,B2,C2
A3,B3,C3  この後もデータがある限りつづく

というようにデータ(仮)を抽出し、それを表示しています。
今回、そのA1のデータにどれだけDというデータが入っているか、A2のデータにどれだけDというデータが入っているかというようにカウントし、それを追加で表示させたいと思っております。表示は例でEをカウント回数とした場合

図2
A1,B1,C1,E  
A2,B2,C2,E
A3,B3,C3,E  Aのデータがある限り続く

というように、今までの表にEが追加される表示にさせたいと思っております。
この場合、VBでどういったプログラム文を作ればよいでしょうか? Aのデータの内容は検索条件によって変わります。

fetchなどは使えるのではないか?と私は思っていますがVBのプログラム文でどう作ったらよいかがイマイチわかりません。

説明がよくわからないかもしれませんが、参考になるプログラム、またはURLを教えてくださいませ。
aacute
常連さん
会議室デビュー日: 2005/08/25
投稿数: 30
投稿日時: 2005-09-16 00:58
引用:

みきてぃさんの書き込み (2005-09-16 00:29) より:
fetchなどは使えるのではないか?と私は思っていますがVBのプログラム文でどう作ったらよいかがイマイチわかりません。


fetchとは何ですか?

とりあえず、DataSetとかDataTableなんかの使い方は理解していますか?
そのあたりの参考になるURLです。

DataSet の作成および使用
http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpconcreatingusingdatasets.asp
trapemiya
大ベテラン
会議室デビュー日: 2005/07/30
投稿数: 102
投稿日時: 2005-09-16 07:58
確認ですが、group byではダメな状況なんでしょうか?
とっと
大ベテラン
会議室デビュー日: 2004/03/25
投稿数: 197
投稿日時: 2005-09-16 08:28
おはようございます。

>あるテーブル
の定義やDの定義がいまいち分りませんが・・・。

SELECT文の中でCOUNTすればよいのでは?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-16 09:13
こんにちは、じゃんぬ です。

引用:

みきてぃさんの書き込み (2005-09-16 00:29) より:

fetchなどは使えるのではないか?と私は思っていますがVBのプログラム文でどう作ったらよいかがイマイチわかりません。


インライン クエリで書いてしまうか、ストアドで書いて型付 Dataset に渡すかですね。


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
なおこ(・∀・)
大ベテラン
会議室デビュー日: 2004/04/08
投稿数: 174
お住まい・勤務地: 東京都
投稿日時: 2005-09-16 16:10
お世話になります。

>A1のデータにどれだけDというデータが入っているか、A2のデータにどれだけDというデータが入っているか
これがちょっと解らなかったんですが、
A1(データ)にDという"文字"がどれだけ入っているか、というような感じですか?

であれば…ですが。
DBから、DataSetやDataAdapterを使って、図1のDataTableを取得(Aとします)
AのDataTableをCloneして新しいDataTable(Bとします)を作成。
Bにカウント値格納用のDataColumnをAddする。
以下のような感じでLoopしてDataTableを作る…とか。
コード:

For i As Integer = 0 To A.Rows.Count -1
  Dim a_row As DataRow = A.Rows(i)
  Dim str As String = Ctype(row("A1"))
  Dim count As Integer = 文字数カウント処理(str, "D")
  Dim b_row As DataRow = B.NewRow()
  For j As Integer = 0 To A.Columns.Count -1
    b_row(j) = a_row(j)
    …
  Next
  b_row(カウント値格納項目名) = count
  B.Rows.Add(b_row)
Next


全然違うこと書いていたらごめんなさい…。

[ メッセージ編集済み 編集者: なおこ(・∀・) 編集日時 2005-09-16 16:12 ]
1

スキルアップ/キャリアアップ(JOB@IT)