我有一个SQR Begin-Select
语句SELECTS
一堆数据并返回它以处理SQR报告。 Begin-Select
有可能不会返回任何内容,因此这意味着无需报告任何内容。
我如何检查Begin-Select
是否在其中没有返回任何行的声明?
我考虑在COUNT(*)
中添加Begin-Select
,但我不想GROUP BY
任何事情。这是Begin-Select
的样子。
Begin-Select On-Error=Global-Got-Fatal-SQL-Error
B.InvrExtAcctNbr &InvrLoanNbr
A.AcctNbr &AcctNbr
C.RtxnNbr &AcctGrpNbr
!- Process each record
#Debug Show 'Processing AcctNbr: ' &AcctNbr
!Do Process-Record
#Debug Show 'Processed AcctNbr: ' &AcctNbr
FROM FooBar A,
JohnDoe B,
SQRNoob C
WHERE A.QueNbr = $QueNbr /* 123 */
AND A.QueSubNbr = $QueSubNbr /* 456 */
AND A.ApplNbr = $ApplNbr /* 789 */
AND A.AcctNbr = C.AcctNbr
AND A.RtxnNbr = B.AcctGrpNbr
ORDER BY A.AcctNbr
End-Select
我想检查Begin-Select
是否有任何回复。我试过这个:
Begin-Select On-Error=Global-Got-Fatal-SQL-Error
COUNT(A.AcctNbr) &TotalRows
B.InvrExtAcctNbr &InvrLoanNbr
A.AcctNbr &AcctNbr
C.RtxnNbr &AcctGrpNbr
...
但我不想在发言结束时使用GROUP BY
条款。我也不想把它分成两个单独的SELECT
陈述。一个用于实际选择数据,另一个用于COUNT(A.AcctNbr)
。
是否有其他方法可以获取从此SELECT语句返回的行数。
我的整个问题是,如果没有行返回,我不必处理表单。所以实际上我只需要检查Begin-Select
是否返回一行或多行行。如果它返回没有行,那么我将停止处理SQR。
答案 0 :(得分:1)
蛮力方法:
Let #Count = 0
Begin-Select
Variables
add 1 to #Count
From etc
End-Select
If #Count = 0
我能想到的最简单的方法 - 我尝试了#SQL-COUNT,但这只适用于Insert,Delete和Update语句,而不是select。