2012-06-04 3 views
0

열의 값의 합계를 얻으려고합니다. SELECT 문에서 SUM()을 사용하고 있습니다.vbscript를 사용하여 열의 값을 합하는 방법

<% 
      sql = "select SUM(OpcCalEstQuantity) as qt_total from [Sheet1$] where cInt(JobEstimateNumber) = '"&cint(request.QueryString("no"))&"' and MccDescription = 'CTP Plate Making & Plates' and MaoOperationDescription = 'Plate Making'" 
      rs1.open sql, con, 1, 2 
      do while not rs1.eof 
      %> 
      <td style="padding:3px; text-align:right;"><%=rs1("qt_total")%></td> 
      <% 
       rs1.movenext 
       loop 
       rs1.close 
      %> 

하지만 브라우저에 표시하는 동안이 오류가 발생합니다.

Microsoft JET Database Engine error '80040e14' 

Invalid use of Null 

은 그래서 해결 방법 고원이 값을 계산하는 VBScript를를 사용하는 생각. 그러나 열에서 값을 집계하는 기능은 없습니다.

+0

열'JobEstimateNumber '대부분 하나 이상의 NULL 값을 포함합니다. 나는 해결책을 찾지 못했지만, 우선 컬럼을 정수로 변환하는 대신 컬럼을 정수로 변환해야하는 이유에 대해 먼저 질문하게됩니다. –

답변

1

나는 SQL과 MS Jet Engines에 익숙하지 않지만, SUM에 넣고 싶은 컬럼에 NULL 값이 포함되어 있다고 생각한다. 그들을 제거하기 위해 당신의 데이터베이스를 지원하는 경우, 당신이 좋아하는 coalesce 기능을 사용할 수 있습니다 :

sql = "select SUM(COALESCE(OpcCalEstQuantity, 0)) as qt_total from ......" 
1

유착하면 SQL에서이 문제를 해결하려는 경우 좋은 제안입니다. 당신이 VBScript를/ASP에서 순수를 해결하려면
, 당신은 루프가 있고 총 금액을 직접 계산합니다,이 시도 :이 도움이

<% 
    sql = "select OpcCalEstQuantity from [Sheet1$] where cInt(JobEstimateNumber) = '"&cint(request.QueryString("no"))&"' and MccDescription = 'CTP Plate Making & Plates' and MaoOperationDescription = 'Plate Making'" 
    rs1.open sql, con, 1, 2 
%> 

<% dim total : total = 0 
    do while not rs1.eof 
     if NOT(isNull(rs1("OpcCalEstQuantity")) OR rs1("OpcCalEstQuantity")="") then total = total + cDbl(rs1("OpcCalEstQuantity")) 
     rs1.movenext 
    loop 
    rs1.close 
%> 
<td style="padding:3px; text-align:right;"><%=total%></td> 

희망,
에릭을

관련 문제