Написать оператор условия 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 - я получаю оповещения, если вы делаете - извините, это заняло так много времени, чтобы ответить