1

SQR初心者です。変数を作成し、それを条件ステートメントに使用するには、助けが必要です。私の擬似コードは行きます

declare $head_print

let $head_print = (select * from PS_DTR_RPT_ACCT
where RPT_TREE_NODE = 'REAL_ESTATE_EXP' 
or TREE_NODE_NUM between 4600000 and 4699999)

if(head_print contain REAL_ESTATE_EXP or Account between 46000000 and 4699999)
then head_print = "REAL ESTATE";
else head_print = "Capital ESTATE";
4

1 に答える 1

1

あなたが何を望んでいるのかははっきりしていないので、私は仮定をしています。特定の値がテーブルPS_DTR_RPT_ACCTにある場合、「REAL ESTATE」と言いたい場合は「CAPITAL ESTATE」と言うようです

SQR では、SQL を begin-select ブロックに配置する必要があります - ルールは非常に厳密です - フィールド名は列 1 にある必要があります - 列 1 の NOT の下にあるコード。実際の SQR でコードを記述しましたが、テストできなかったため、エラーが発生する可能性があります。さらに、「select *」と表示されているだけなので、フィールド名がわかりません。

Begin-Report

   do GetData

End-Report

Begin-Procedure GetData

! Initialize value - if no data found, query this later and set it to the "ELSE"
Let $Head_print = ''

Begin-Select

Head_Print
   ! Override the value from the table but only if you need to
   Let $Head_Print = 'REAL ESTATE'

from PS_DTR_RPT_ACCT
Where RPT_TREE_NODE = 'REAL_ESTATE_EXP' 
or TREE_NODE_NUM between 4600000 and 4699999)

End-Select 

! If $Head_print is blank, then no value was found with the sql - do the ELSE part
If $Head_Print = ''
   Let $Head_Print = 'Capital Estate'
End-If

End-Procedure

SQR は学習するのに非常に優れた有限言語です。構文は多少厳密ですが、Basic with SQL のように単純です。リファレンス マニュアルを読むことをお勧めします。Oracle からダウンロードできます。

SQR について他にご不明な点がございましたら、お気軽にお問い合わせください。ご質問があればアラートを受け取ります。回答に時間がかかって申し訳ありません。

于 2014-03-19T17:43:49.520 に答える