• 締切済み

毎回変わる列名からの集計

ストアドプロシージャから列を動的に作成するテーブルがあるのですが、 そのテーブルを別のプロシージャ内で集計を行いたいのです。 ##TEMPテーブル ID,3/1,3/5,3/16,3/24 1000,1,4,3,4 1001,2,3,4,2 1002,1,2,1,2 (月日の列の部分が動的に変わります) このテーブルともうひとつあるT_顧客が IDでつながっているとして T_顧客のなかの顧客名だけ表示してあとは##TEMPの 内容をすべて表示したい場合どういったSQLにすればよいか もしヒントでもよろしいですので なにかご教授いただけますと幸いです。

みんなの回答

  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.1

集計の単位が ID だとして ##TEMPテーブル を作成した 時点で集計してしまうのはダメですか? (集計しない生データを後で使う必要がなければ) その状態が ##TEMPテーブル ID,3/1,3/5,3/16,3/24 1000,1,4,3,4 1001,2,3,4,2 1002,1,2,1,2 想定します。さらにT_顧客の顧客名の列名を「顧客名」と して、別プロシージャ側では単純に結合すれば、  ↓ select c.顧客名,tmp.* from ##TEMPテーブル tmp inner join T_顧客 c on tmp.ID = c.ID すべてをストアド内で解決しなければならないとなると、 面倒そうですが、ストアドをコールするのが他のアプリ だとすると、例えば、ADOなら、上記のように列名が不定 でもLOOPで表示可能なのでアプリ側で編集できますよね。 (ストアドの結果をレコードセットで受けるのは今日的 とは言えないけど) 蛇足ですが、##TEMPテーブル はセッションが切断された 時点でなくなる事はご存知ですよね?

関連するQ&A