ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

データビューの任意項目の最大値取得について

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2011-5-24 16:23
kai  新米   投稿数: 12
以下のような構造でプログラムを作成しています。

------------------------------------------------------
DB:oracle

●親タスク
メインテーブルなし
・変数a(条件入力用)

●子タスク
メインテーブル:テーブルA
・項目1 VARCHAR2
・項目2 VARCHAR2 
・項目3 NUMBER
(MagicSQLにより変数aの値を用いてレコードを抽出)
------------------------------------------------------


親タスクで抽出条件を入力し、入力された値を用いて
子タスクのテーブルコントロールに抽出したレコードを
表示させています。

ここで抽出したレコードの中で、ある任意の項目の
最大値を求めたいのですが、何か有効な方法はありますでしょうか。

例:
テーブルA
(項目1、項目2、項目3)
AAA、あああ、5
BBB、いいい、9
CCC、ううう、4

となっており、抽出した結果レコードが

AAA、あああ、5
CCC、ううう、4

という2レコードだった場合に、項目3の値である
「5、4」の中の最大値である「5」を求めたいです。

抽出した結果を都度メモリに書出して、最大値を求める
ような方法しか思い付かないのですが、
他に方法があれば教えて頂きたいです。

よろしくお願い致します。

投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-5-24 17:08
kubota  新米   投稿数: 15
kai様

もっと良い方法があると思いますが・・
私なら、「select Max(項目3) From テーブルA WHERE :1」のような
ものをSELECT文に追加して最大値を求めます。
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-5-26 19:27
Tanda  長老   投稿数: 2151
kai さん、こんにちは。

レコードを項目3の降順でソートして、データリンクで先頭に
位置付ければ、値が取得できると思いますよ。

タンダコンピュータ/丹田 昌信
投票数:1 平均点:10.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-5-30 16:03
kai  新米   投稿数: 12
kubota様

ご返信ありがとうございました。
参考にさせて頂きます。

因みに、たびたびの質問で申し訳ないのですが、
SELECT文の追加は、メインテーブルを
「SQLコマンド」にするということでしょうか。
それとも、メインテーブルはそのままの状態で
「タスク環境」-「範囲/位置付」-「SQL Wherer句」内の
「MagicSQL」や「DB SQL」に記述してしまっても良いものでしょうか。

お時間に余裕がありましたら、ぜひご教示お願い致します。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-5-30 16:06
kai  新米   投稿数: 12
Tanda様

ご返信ありがとうございました。
データリンクは思いつきませんでした。
参考にさせて頂きます。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-5-30 16:11
Tanda  長老   投稿数: 2151
kai さん、こんにちは。

実は、この方法は dbMAGIC V4 の頃からの定石なんです。
「丹田昌信の dbMAGIC 道場」でも、この手法を頻繁に使用して
います。

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-5-30 18:10
kubota  新米   投稿数: 15
引用:

SELECT文の追加は、メインテーブルを
「SQLコマンド」にするということでしょうか。
それとも、メインテーブルはそのままの状態で
「タスク環境」-「範囲/位置付」-「SQL Wherer句」内の
「MagicSQL」や「DB SQL」に記述してしまっても良いものでしょうか。

kai様

申し訳ございません。読み違えました・・。
メインテーブルがSQLコマンドだと思ったため
Select文の追加をご提案しましたが、
実テーブルであればできないですね。

DB SQL や SQLWhere句は、Where句に相当し
Selectの代わりにはできないと思うので、
Tanda様の方法が良いかと思います!
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-5-31 15:49
kai  新米   投稿数: 12
Tanda様

定石でしたか。
そういった技をたくさん使えるよう、
精進しようと思います。
ありがとうございました。
投票数:0 平均点:0.00
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-5-31 15:50
kai  新米   投稿数: 12
kubota様

ご返信ありがとうございました。

やっぱりSQLWhere句は、Where句なんですね。
SQLコマンドはまだあまり使っていないので、
これからチャレンジしていこうと思います。

大変勉強になりました。
ありがとうございました。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約