I am receiving an error
Msg 8115, Level 16, State 8, Line 2
Arithmetic overflow error converting numeric to data type numeric
when trying to execute the following SQL. Any ideas on what I can do to correct the issue? I am sure it is related to the VarChar
but I am not sure what I can do to fix it.
SELECT
CONVERT(VARCHAR(10), t1.date_transaction, 10) AS summaryDate,
t1.qb_merchant_id, t1.store_id,
SUM(t1.amount) - ISNULL(SUM(te.TransAmount), 0) +
ISNULL(SUM(te.OriginalTransAmount), 0) AS grossSales,
SUM(CASE WHEN t1.voided = '1' THEN 0 ELSE t1.amount END) AS netSales,
(SELECT COUNT(*) AS Expr1
FROM dbo.sas_transactions AS t3
WHERE (voided = '1') AND (qb_merchant_id = t1.qb_merchant_id) AND (store_id = t1.store_id) AND (CONVERT(VARCHAR(10), date_transaction, 10) = CONVERT(VARCHAR(10), t1.date_transaction, 10))) AS voids,
SUM(ISNULL(te.Commission, CASE WHEN t1.voided = '1' THEN 0 ELSE t1.amount_commission END)) AS totalCommissions,
SUM(CASE WHEN t1.voided = '1' THEN 0 ELSE t1.amount_sas END) AS totalShareASale,
(SELECT COUNT(*) AS Expr1
FROM dbo.sas_transactions AS t2
WHERE (transaction_type = 'Sale' OR transaction_type = 'Manual Sale') AND (qb_merchant_id = t1.qb_merchant_id) AND (store_id = t1.store_id) AND (voided <> '1') AND (CONVERT(VARCHAR(10), date_transaction, 10) = CONVERT(VARCHAR(10), t1.date_transaction, 10))) AS numOrders,
(SELECT COUNT(*) AS Expr1
FROM dbo.sas_transactions AS t4
WHERE (transaction_type = 'Lead') AND (qb_merchant_id = t1.qb_merchant_id) AND (store_id = t1.store_id) AND (voided <> '1') AND (CONVERT(VARCHAR(10), date_transaction, 10) = CONVERT(VARCHAR(10), t1.date_transaction, 10))) AS numLeads,
(SELECT COUNT(DISTINCT user_id) AS Expr1
FROM dbo.sas_transactions AS t2
WHERE (transaction_type = 'Sale' OR transaction_type = 'Manual Sale') AND (qb_merchant_id = t1.qb_merchant_id) AND (store_id = t1.store_id) AND (voided <> '1') AND (CONVERT(VARCHAR(10), date_transaction, 10) = CONVERT(VARCHAR(10), t1.date_transaction, 10))) AS numAffiliates
FROM
dbo.sas_transactions AS t1
LEFT OUTER JOIN
dbo.sas_transaction_edits AS te ON t1.transaction_id = te.TransID
WHERE
(t1.transaction_type <> 'Manual Deposit')
AND (t1.transaction_type <> 'Autodeposit')
GROUP BY
CONVERT(VARCHAR(10), t1.date_transaction, 10), t1.qb_merchant_id, t1.store_id
I am getting the same error with the following one as well:
SELECT CONVERT(VARCHAR(10), t1.date_transaction, 10) AS summaryDate, t1.qb_merchant_id, t1.store_id, SUM(t1.amount) - ISNULL(SUM(te.TransAmount), 0) + ISNULL(SUM(te.OriginalTransAmount), 0) AS grossSales,
SUM(CASE WHEN t1.voided = '1' THEN 0 ELSE t1.amount END) AS netSales,
(SELECT COUNT(*) AS Expr1
FROM dbo.sas_transactions AS t3
WHERE (voided = '1') AND (qb_merchant_id = t1.qb_merchant_id) AND (store_id = t1.store_id) AND (CONVERT(VARCHAR(10), date_transaction, 10) = CONVERT(VARCHAR(10), t1.date_transaction, 10)))
AS voids, SUM(ISNULL(te.Commission, CASE WHEN t1.voided = '1' THEN 0 ELSE t1.amount_commission END)) AS totalCommissions, SUM(CASE WHEN t1.voided = '1' THEN 0 ELSE t1.amount_sas END)
AS totalShareASale,
(SELECT COUNT(*) AS Expr1
FROM dbo.sas_transactions AS t2
WHERE (transaction_type = 'Sale' OR
transaction_type = 'Manual Sale') AND (qb_merchant_id = t1.qb_merchant_id) AND (store_id = t1.store_id) AND (voided <> '1') AND (CONVERT(VARCHAR(10), date_transaction, 10)
= CONVERT(VARCHAR(10), t1.date_transaction, 10))) AS numOrders,
(SELECT COUNT(*) AS Expr1
FROM dbo.sas_transactions AS t4
WHERE (transaction_type = 'Lead') AND (qb_merchant_id = t1.qb_merchant_id) AND (store_id = t1.store_id) AND (voided <> '1') AND (CONVERT(VARCHAR(10), date_transaction, 10)
= CONVERT(VARCHAR(10), t1.date_transaction, 10))) AS numLeads,
(SELECT COUNT(DISTINCT user_id) AS Expr1
FROM dbo.sas_transactions AS t2
WHERE (transaction_type = 'Sale' OR
transaction_type = 'Manual Sale') AND (qb_merchant_id = t1.qb_merchant_id) AND (store_id = t1.store_id) AND (voided <> '1') AND (CONVERT(VARCHAR(10), date_transaction, 10)
= CONVERT(VARCHAR(10), t1.date_transaction, 10))) AS numAffiliates
FROM dbo.sas_transactions AS t1 LEFT OUTER JOIN
dbo.sas_transaction_edits AS te ON t1.transaction_id = te.TransID
WHERE (t1.transaction_type <> 'Manual Deposit') AND (t1.transaction_type <> 'Autodeposit') AND (t1.user_id <> 144212)
GROUP BY CONVERT(VARCHAR(10), t1.date_transaction, 10), t1.qb_merchant_id, t1.store_id