0

我有一个 SQRBegin-Select语句,它SELECTS包含一堆数据并将其返回以处理 SQR 报告。有可能Begin-Select不会返回任何内容,因此这意味着没有要报告的内容。

我将如何检查Begin-Select它的语句中是否没有返回行?

我想过在 中包含 a 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。

4

1 回答 1

1

好吧,蛮力方法:

Let #Count = 0
Begin-Select
Variables
   add 1 to #Count
From etc
End-Select
If #Count = 0

我能想到的最简单的方法 - 我尝试了 #SQL-COUNT 但这仅适用于插入、删除和更新语句,而不适用于选择。

于 2018-03-09T23:35:45.233 回答