我是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";发布于 2014-03-19 17:43:49
不太清楚你想要什么所以我做了个假设。如果某一价值在表PS_DTR_RPT_ACCT中,那么你想让它说“房地产”,否则就说“资本地产”。
现在,对于SQR,您必须将SQL放在一个开始-选择块-规则是非常严格的-字段名必须在第1列-代码下面而不是在第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-ProcedureSQR是一门很好的有限语言--语法有点严格,但与SQL的基本语言一样简单。我建议您阅读参考手册--它可以从Oracle下载。
请随便问一下关于SQR的其他问题--如果你知道的话,我会收到警告--抱歉,这么长时间才能回答。
https://stackoverflow.com/questions/22284812
复制相似问题