Написать оператор условия SQR

Я новичок в 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";

1 ответ

Решение

Не совсем понятно, чего вы хотите, поэтому я делаю предположение. Похоже, что если определенное значение находится в таблице PS_DTR_RPT_ACCT, то вы хотите, чтобы оно говорило "REAL ESTATE", в противном случае говорите "CAPITAL ESTATE"

Теперь с SQR вы должны поместить свой SQL в блок begin-select - правила очень строгие - имена полей должны быть в столбце 1 - код под NOT в столбце 1. В следующей процедуре я попытался закодировать ваш псевдо-код код в реальном 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 с SQL. Я рекомендую прочитать справочное руководство - его можно скачать из Oracle.

Не стесняйтесь задавать любые другие вопросы о SQR - я получаю оповещения, если вы делаете - извините, это заняло так много времени, чтобы ответить

Другие вопросы по тегам