Reputation: 65
I ma getting error in my query. how i can resolve it. i have tried null if but it is not working.
Divide by zero error encountered
SELECT ( 100 - ( ( sum(t1.cAmount) - ( SUM(t1.cAmount) * t2.rAdvancedAmotizationPercent / 100 ) ) * 100 ) / t3.rAmount ) AS restofTotalMoblization,
( ( sum(t1.cAmount) - ( SUM(t1.cAmount) * t2.rAdvancedAmotizationPercent / 100 ) ) * 100 ) / t3.rAmount AS totalMoblization
FROM tblPkgAdvances t1
INNER JOIN tblFianacialInvoice t2
ON t1.vsSysPackageId = 'GWSSP/WS/03'
INNER JOIN tblPkgContractAwardDetails t3
ON t2.iPackageId = t3.iPackageId
WHERE t1.vsSysPackageId = 'GWSSP/WS/03'
GROUP BY t1.cAmount,
t2.rAdvancedAmotizationPercent,
t3.rAmount
Upvotes: 0
Views: 414
Reputation: 1075
you can try
SELECT ( 100 - ( ( sum(t1.cAmount) - ( SUM(t1.cAmount) * t2.rAdvancedAmotizationPercent / 100 ) ) * 100 ) / t3.rAmount ) AS restofTotalMoblization,
( ( sum(t1.cAmount) - ( SUM(t1.cAmount) * t2.rAdvancedAmotizationPercent / 100 ) ) * 100 ) / t3.rAmount AS totalMoblization
FROM tblPkgAdvances t1
INNER JOIN tblFianacialInvoice t2
ON t1.vsSysPackageId = 'GWSSP/WS/03'
INNER JOIN tblPkgContractAwardDetails t3
ON t2.iPackageId = t3.iPackageId
WHERE t1.vsSysPackageId = 'GWSSP/WS/03' and t3.rAmount>0
GROUP BY t1.cAmount,
t2.rAdvancedAmotizationPercent,
t3.rAmount
I have just filtered out records which are greater than 0
Upvotes: 0
Reputation: 171451
Instead of
(100 - ((sum(t1.cAmount) - (SUM(t1.cAmount) * t2.rAdvancedAmotizationPercent / 100)) * 100) / t3.rAmount)
you can do
case when t3.rAmount = 0
then 0
else (100 - ((sum(t1.cAmount) - (SUM(t1.cAmount) * t2.rAdvancedAmotizationPercent / 100)) * 100) / t3.rAmount) end
Upvotes: 1