Не удается интерпретировать файл BASIC, запрашивающий SQL - PullRequest
0 голосов
/ 18 января 2019

Итак, я пытаюсь выяснить, откуда исходит TOTAL_CHG. Ниже приведен фрагмент, где он впервые используется (ранее не определялся).

...
 sStrBalance = " (TOTAL_CHG - (ISNULL((SELECT SUM(isnull(t.amount, 0)) FROM transactions t " & _
        " WHERE     cp.contpolid = t.contpolid AND t.tran_date <= '" & GRepdate & "'), 0) + " & _
        " ISNULL((SELECT SUM(isnull(dirpayamt, 0))  FROM  bkrtrans bkr " & _
        " WHERE     cp.contpolid = bkr.contpolid), 0))) "
...

А затем следующий блок кода, который снова ссылается на него, выглядит следующим образом:

...
    strSQL = strSQL & vbCrLf & " SELECT  cp.Contpolid, cp.CTYPE_ID, cp.C#, cp.REV, " & _
                vbCrLf & "CASE WHEN cp.Div_Code = 'GM' THEN 'SLP' ELSE 'SCA' END, " & _
                vbCrLf & "cp.Effective_ as EFFDATE, ADJUSTMENT, cp.terminatio, cp.TOTAL_CHG, " & _
                vbCrLf & " ISNULL((SELECT     SUM(isnull(t.amount, 0)) FROM transactions t " & _
                vbCrLf & " WHERE     cp.contpolid = t.contpolid AND t.tran_date <= '" & GRepdate & "'), 0) AS Payments, " & _
                vbCrLf & " ISNULL((SELECT     SUM(isnull(dirpayamt, 0)) FROM  bkrtrans bkr " & _
                vbCrLf & " WHERE     cp.contpolid = bkr.contpolid), 0) AS BrkPayment,  " & _
                 sStrBalance & " AS Balance, cast(0 as numeric(12,2)) as SixtyDays, cast(0 as numeric(12,2)) as NinetyDays , " & _
                vbCrLf & "  cast(0 as numeric(12,2)) as OverNinetyDays , CASE WHEN Register_D IS NULL THEN 'N' ELSE CASE WHEN Register_D < '" & GRepdate & "' THEN 'Y' ELSE 'N' END END "
            strSQL = strSQL & vbCrLf & " FROM CONTRACTS_POLICIES cp (NOLOCK) /*JOIN Salesmen s (NOLOCK) ON s.salesmenid = cp.sales1*/ " & _
                vbCrLf & " Where cp.CTYPE_ID = 1 And cp.Cancel_dat Is Null and CP.Sales1 is Not NULL " & _
                vbCrLf & " AND ((CP.Effective_ <= '" & GRepdate & "' AND CP.Rev = 0) OR (CP.Adjustment <= '" & GRepdate & "' AND CP.Rev > 0)) " & _
                vbCrLf & " AND NOT((" & sStrBalance & " > 0 AND cp.Effective_ <= '01/01/1996') OR (" & sStrBalance & "< 0 AND cp.Effective_ <= '01/01/1998')) " & _
                vbCrLf & " And " & sStrBalance & " <> 0  "
...

С какого стола он вообще идет? Кажется, что он определен в первом блоке кода, но на самом деле это еще не значение.

...