• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数フィールドを返すストアドからある1フィールドの値を取得するにはどの)

ストアドから特定のフィールドの値を取得する方法

このQ&Aのポイント
  • ストアドから特定のフィールドの値を取得するには、新たに作成するSP_Bストアドで既存のSP_Aストアドを実行し、実行結果からfield3フィールドの値を取得します。
  • SP_Aストアドは修正しない状態で、field3フィールドの値のみ取得する方法を検索しています。
  • 質問者はSP_Aストアドを修正せずに、field3フィールドの値のみ取得する方法を知りたいとしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • wingtodo
  • ベストアンサー率56% (9/16)
回答No.1

勘違いな回答でしたらごめんなさい。 単純にSP_Bを ----------------------------- SELECT TOP 1  field3 FROM テーブル名 WHERE  field2 = @パラメータ値 ----------------------------- でどうですかね。

Nanchatte_PG
質問者

補足

回答ありがとうございます。 私の説明が下手で申し訳ありません。 SP_Aストアド内で色々と処理をしてその結果でテーブルを参照しているので省略してしまいました。 結論から言うとSELECT文を実行しているストアドからは特定のフィールドの値を取得する事ができないって事なのでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ストアドから別のストアドを作成できますか?

    パラメータ付きストアドから、そのパラメータを展開したSELECT文のストアドを作成する事は可能でしょうか? アクセスのデータシートビューを表示するにはパラメータがあっても指定出来ないようなんです。 「DoCmd.OpenStoredProcedure」でパラメータ付きのストアドを実行すると、 パラメータ用のインプットボックスが表示されその都度入力しなくてはなりません。 そこで、アクセスから@フィールド名 と @テーブル名 をパラメータとしてストアドを実行し、 ストアドで「SELECT @フィールド名 from @テーブル名」パラメータを展開したSELECT文にして、 別の名前を付けたパラメータ無しのストアドとして登録し、そのストアドを アクセスの「DoCmd.OpenStoredProcedure」で実行すれば、目的のデータシートビューを表示出来ると考えました。 ストアドからストアドを作成できるのでしょうか、可能であれば方法を教えて下さい。

  • ストアドのフィールド指定方法

    MS SQL Server7.0のストアドプロシージャについての質問です。 複数のフィールドを持つテーブルの、各フィールドに入ってる値を順番に調べる方法について教えて下さい。 具体的には、フィールドは"月日_01"から"月日_31"まであり、各フィールドには"1"か"0"のどちらかの値を持ってます。この31個のフィールド値を調べて、"1"と"0"の各合計値を求めたいです。 ADOのレコードセットなら、Fields でフィールドのインデックス値を指定出来ますので簡単にループ処理できますが、ストアドの場合インデックスによるフィールド指定がうまく出来ません。 現在はIF文で各フィールドを一つづつ判定してる状態です。もっとスムーズに行う方法がありましたらご教授下さい!どうぞ宜しくお願いします。

  • 2つのフィールドの値が同じレコードをひとつと見なす

    id     field1     field2 1      1        A 2      1        A 3      1        B 4      2        A 5      2        B 6      2        C 7      3        D 8      3        D 9      3        D field1とfield2の値が他のレコードのfield1とfield2と重複している場合はひとつのデータとして返したいです。 id1.2はfield1とfield2の値が同じなので、ひとつのデータしか返しませんが、id3はfield2が異なるので返します。 id4.5.6はいずれもfield2の値が異なるので4.5.6全てを返します。 id7.8.9はfield1とfield2が同じ値なのでひとつのデータしか返しません。 id 1 3 4 5 6 7 該当するレコードは上記のように6個となるようにするにはどのようなsql文を発行すれば良いでしょうか? ご教示頂けますと幸いです。 宜しくお願い致します。

    • ベストアンサー
    • MySQL
  • SQLServerのストアドで戻り値取得したい。

    こんにちわ。 いまSQLServer2005でストアドを作成しています。 あるテーブルをSELECTして,あるカラムと件数の両方を出力パラメータに取得したいのですが, 件数は取得できるのですが,カラムが取得できません。 ちなみに下記のようなコードになります。 create procedure funLoginCheck (@UserID char(5), @PassWord varchar(10), @RowCount int output, @DeptID char(2) output) as select * from MST_Employee where EmployeeID = @UserID And PassWord = @PassWord; set @deptid = deptid」 deptidを出力パラメータに渡す方法がわかりません。 初歩的なことかもしれませんが, 教えてください。よろしくお願いします。

  • ストアドのselect文で別テーブルのカウントを取得するには

    こんばんは。 以下のようなことをするのにどう記述していいのか わかりません。 入力パラメータ test1,test2に一致するテーブル1のレコードの 項目1と項目2の値と test1,test2に一致するテーブル2のレコードの カウントを 返したいと考えていますがどう記述したら テーブル2のカウントを返せるのかわかりません。 以下、考え中の内容を記述したものです。 テーブルTBL_AとテーブルTBL_Bがある。 TBL_Aの項目はFLD_1,FLD_2,FLD_3 TBL_Bの項目はFLD_1,FLD_2,FLD_3,FLD_4 TBL_AとTBL_Bには同一のフィールドFLD_1,FLD_2があり、 select FLD_1,FLD_2,FLD_3 FROM TBL_A WHERE FLD_1 = test1 AND FLD_2 = test2(select文1) 上記のSQLでTBL_AのFLD_1,FLD_2を取得する ここに、 select count(*) FROM TBL_B WHERE FLD_1 = test1 AND FLD_2 = test2(select文2) このselect文2で取得した値を select文1に接続して値を戻したいのですが やり方がわかりません。 戻したい値はTBL_AのFLD_1,FLD_2,FLD_3とTBL_Bのカウントです。 お分かりになる方教えてください。よろしくお願いします。 なおoracleは9iを使っています。

  • フィールドの主キープロパティを取得したい

    お世話になっております。 Select文で抽出したレコードセットのフィールドのプロパティを参照し、主キーの一部であるかを取得したいと思っております。 <省略> Select * From Atbl Where Id = IdHensu <省略> Debug.Print rstA.Fields(0).Properties("Keycolumn").Value でやってみましたが、全て[False]で戻ってきてしまいます。 使い方が間違っているのでしょうか? MSDEには、これで取得できると書いてあると思うのですが・・・ 皆様、宜しくお願い申し上げます。 <環 境> Windows2000SP2 VB6SP5 + SQL7.0SP3 SQLにはADOで接続しています。

  • ストアドプロシージャの戻り値が取得できない

    ストアドプロシージャの戻り値が取得できない ストアドプロシージャ内でSelectとUpdateを行い、設定した戻り値をリターンしたいのです。 ついでにSelectとした複数行の結果の読み込みもしたいのですが。 Dim cmd As New System.Data.SqlClient.SqlCommand Dim i As Integer Dim readerA As System.Data.SqlClient.SqlDataReader cmd.CommandType = Data.CommandType.StoredProcedure cmd.CommandText = "SP名" cmd.Parameters.Add("A", System.Data.SqlDbType.Int) cmd.Parameters("A").Direction = System.Data.ParameterDirection.ReturnValue readerA = cmd.ExecuteReader() i = cmd.Parameters("A").Value if (i = 0) Then 処理 End If While readerA.Read() 処理 End While 上記でSelectした結果をreaderA("カラム名") で読みこめているのですが、戻り値Aの値が取得できていません。 ウォッチ式でcmd.Parameters("A").Valueを見るとNothingになっています。 ちなみに、違うストアドを実行しているところでは戻り値は取得できています。。。 ストアドがおかしいんでしょうか。Selectの取得結果も見ようとしているのがまずいのでしょうか。 環境はvb.net、SQLServer2005です。

  • Select文で2つのフィールドを加算した結果を取得したい

    Select文で2つのフィールドを加算した結果を取得したいと思います。しかし2つのフィールドのうち1つがNullの値だと残りのフィールドに値が入っていても空白(NULL?)で返ります。 [例]********************************************** フィールドA:Null フィールドB:300 SELECT フィールドA+フィールドB FROM テーブルA <Selectされた結果> 空白(何も表示されない。Null?) [例]********************************************** どのようにすれば、Nullでない値だけ取得できるでしょうか。

  • SQL 取得した値について

    力を貸してください。 教えてください。 (1)SELECT 項目1 FROM 表 (2)SELECT 項目2 FROM 表2   WHERE = A <> 「(1)で取得した項目1」 ※(1)で取得した値を(2)のWHERE句の条件で使用したいのですが、 どの方法であればよろしいでしょうか? 回答の方をお願いします。

  • ストアドから得られるレコードセットを、別のストアドで利用したい

    現在、実行するとあるレコードセット(1行1列のみ)を返すストアドプロシージャProc_Aがありますが、このプロシージャを実行して得られる結果を、 別のプロシージャProc_Bで、以下のような形で使用したいと考えています。 ただし、Case文内部でのストアドの実行や、変数へのストアドの実行結果の代入を試しましたが、どちらもうまくいっていません。 なにか、よい解決策があれば、教えていただければ、と思います。 パターンA) Case内部で直接実行 select case Table_A.param_1 when 0 then Exec Proc_A '***','**' else '' end パターンB)いったんパラメータとして取得 declare @values as char(10) execute sp_executesql N'@values = Proc_A ''***'',''**''', N'@values char(10) OUTPUT', @values OUTPUT