gpt4 book ai didi

sql-server - 当返回 Null 时,ADO 形状上的 VB6 CALC 聚合在数据报告中出现一般错误

转载 作者:行者123 更新时间:2023-12-02 13:38:20 25 4
gpt4 key购买 nike

我在数据报告上使用 ado shape 命令,它工作正常,但是当我的聚合函数 CALC(agrProfit/agrExtended*100) 为 null 或 0/0*100 时,它显示一般错误并且数据报告未显示。请帮忙。

mRS.Open "SHAPE {select products.productid,products.productcode,isnull(products.description,descr) as description,isnull(vendor.description,'*** NOT FOUND ***') as groupdescription, " & _
"isnull(sum(totalcost),0) as mTotalCost,isnull(sum(extended) - (sum(totalcost)),0) as mProfit, " & _
"sum(charges) as mCharges,sum(discount) as mDiscounts, sum(retextended) as mReturns, " & _
"reportuom, sum(totalcost) as mTotalCost, isnull(case when sum(extended) = 0 then 0 else (sum(extended) - (sum(totalcost)))/sum(extended)*100 end,0) as mgpm, sum(totalcost) as mTotalCost, case when sum(extended) = 0 then 0 else (sum(extended) - (sum(totalcost)))/sum(extended)*100 end as mgpm, sum(case when extended < 0 then (0 - (totalqty/products.reportqty)) else (totalqty/products.reportqty) end) as mTotalQty, isnull(sum(extended),0) as mExtended, sum(case when extended < 0 then (0 - (totalqty/products.reportqty)) else (totalqty/products.reportqty) end) / " & mTotalQty & " * 100 as mPercTotalQty, sum(extended) / " & mTotalExtended & " * 100 as mPercExtended " & _
"From " & _
"(select finishedsales.QtyReturned,finishedsales.productid,finishedsales.description as descr, finishedsales.averageunitcost* case when [return]=1 then convert(money,0-totalqty) else totalqty end as TotalCost,(chargeallowance * qty) + (chargeamountdiscounted * qty) as charges,(allowance * qty) + (amountdiscounted * qty)+ (extended-(extended * multiplier)) as discount,0 as rettotalqty, 0 as retextended,totalqty,round(extended * multiplier,4) as extended From finishedsales " & _
" left join products on products.productid = finishedsales.productid " & _
.gReportCriteria & _
"Union All " & _
"select finishedsales.QtyReturned, finishedsales.productid,finishedsales.description as descr,0 as totalcost,0 as charges,0 as discount,totalqty as rettotalqty ,abs(round(extended,4)) as retextended,0 as totalqty, 0 as extended From finishedsales " & _
"left join products on products.productid = finishedsales.productid " & _
Replace(UCase(.gReportCriteria & " and [RETURN] = 1"), "[RETURN] = 0", "[return] = 1") & _
") as finishedsales " & _
"left join products on products.productid=finishedsales.productid " & _
"left join vendor on products.vendorcode=vendor.vendorcode " & _
"group by descr,products.productid,products.productcode,products.description,vendor.description,reportuom " & _
"order by groupdescription, " & IIf(frmReportProducts.chkTop And fVal(frmReportProducts.txtTop) > 0, "finishedsales.mtotalqty desc,", "") & " products.description} AS Command1 COMPUTE Command1, SUM(Command1.mTotalQty) AS agrTotalQty, SUM(Command1.mExtended) AS agrExtended, SUM(Command1.mProfit) AS agrProfit, CALC(agrProfit/agrExtended*100) As agrGPM BY groupdescription", mcn

最佳答案

看来您正在使用 ADO Data Shaping functions此处,CALC(表达式) 允许您使用 here 列出的 VBA 函数表达式内。 @C-Pound Guru 的建议会导致错误,因为 NULLIF() 不是 VBA 函数,但整个表达式可以像这样重写:

CALC(IIF(IsNull(agrProfit), 0, IIF(agrProfit=0, 0, agrProfit/agrExtended) *100))

请告诉我这是否可以解决您的问题。

关于sql-server - 当返回 Null 时,ADO 形状上的 VB6 CALC 聚合在数据报告中出现一般错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35549816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com