-
Problem with ROWSIZE in query output..URGENT
Hi All,
After running an SQL Squery in MS-SQL Server I got following error
Cannot sort a row of size 8097, which is greater than the allowable maximum of 8094.
Can anyone have solution for the same PLEASE ??? Let me know where I am going wrong
Here is my complete query
CREATE TABLE #TEMPP
(
ACCOUNTTYPE VARCHAR(20),
PRODUCTTYPE VARCHAR(50),
TRANSACTIONTYPE VARCHAR(100),
TRANREASON VARCHAR(100),
NOOFTRAN INT,
CURRENCY VARCHAR(10),
TOTALVALUE VARCHAR(100),
PERCENTAGE VARCHAR(50)
)
DECLARE @TOTALP AS FLOAT
SELECT
@TOTALP = CAST(CAST(SUM(acr.AMOUNT) AS FLOAT) AS NUMERIC(10,2))
FROM ACCOUNTS act (NOLOCK), AC_AUDIT acr (NOLOCK)
WHERE act.ACCOUNT = acr.ACCOUNT
AND acr.REASON NOT LIKE '%Account Created%'
AND acr.AMOUNT > = 0
INSERT INTO #TEMPP
SELECT
[Account Type] = CASE act.TYPE WHEN 0 THEN 'Prepaid' WHEN 1 THEN 'Postpaid' END,
[Product Type] = COALESCE(act.PRODUCT_NAME,'--None--'),
[Transaction Type] = COALESCE(acr.METHOD,'--None--'),
[Transaction Reason] = CASE WHEN PATINDEX ( '%:%' , acr.REASON ) = 0 THEN acr.REASON
ELSE REPLACE(SUBSTRING(acr.REASON,1,PATINDEX('%:%', acr.REASON)), ':', '')
END,
[No. of Transactions] = COUNT(acr.METHOD),
[Currency] = COALESCE(act.CURRENCY,'--None--'),
[Total Value] = CAST(CAST(SUM(acr.AMOUNT) AS FLOAT) AS NUMERIC(10,2)),
[% of Total Credit] = CAST(CAST((SUM(acr.AMOUNT)/@TOTALP)*100 AS FLOAT) AS NUMERIC(10,1))
FROM ACCOUNTS act (NOLOCK), AC_AUDIT acr (NOLOCK)
WHERE act.ACCOUNT = acr.ACCOUNT
AND acr.REASON NOT LIKE '%Account Created%'
AND acr.AMOUNT > = 0
GROUP BY
act.TYPE,
COALESCE(act.PRODUCT_NAME,'--None--'),
COALESCE(acr.METHOD,'--None--'),
CASE WHEN PATINDEX ( '%:%' , acr.REASON ) = 0 THEN acr.REASON
ELSE REPLACE(SUBSTRING(acr.REASON,1,PATINDEX('%:%', acr.REASON)), ':', '')
END,
COALESCE(act.CURRENCY,'--None--')
ORDER BY act.TYPE ASC
CREATE TABLE #TEMPN
(
ACCOUNTTYPE VARCHAR(20),
PRODUCTTYPE VARCHAR(50),
TRANSACTIONTYPE VARCHAR(100),
TRANREASON VARCHAR(100),
NOOFTRAN INT,
CURRENCY VARCHAR(10),
TOTALVALUE VARCHAR(100),
PERCENTAGE VARCHAR(50)
)
DECLARE @TOTALN AS FLOAT
SELECT
@TOTALN = CAST(CAST(SUM(acr.AMOUNT) AS FLOAT) AS NUMERIC(10,2))
FROM ACCOUNTS act (NOLOCK), AC_AUDIT acr (NOLOCK)
WHERE act.ACCOUNT = acr.ACCOUNT
AND acr.REASON NOT LIKE '%Account Created%'
AND acr.AMOUNT < 0
INSERT INTO #TEMPN
SELECT
[Account Type] = CASE act.TYPE WHEN 0 THEN 'Prepaid' WHEN 1 THEN 'Postpaid' END,
[Product Type] = COALESCE(act.PRODUCT_NAME,'--None--'),
[Transaction Type] = COALESCE(acr.METHOD,'--None--'),
[Transaction Reason] = CASE WHEN PATINDEX ( '%:%' , acr.REASON ) = 0 THEN acr.REASON
ELSE REPLACE(SUBSTRING(acr.REASON,1,PATINDEX('%:%', acr.REASON)), ':', '')
END,
[No. of Transactions] = COUNT(acr.METHOD),
[Currency] = COALESCE(act.CURRENCY,'--None--'),
[Total Value] = CAST(CAST(SUM(acr.AMOUNT) AS FLOAT) AS NUMERIC(10,2)),
[% of Total Credit] = CAST(CAST((SUM(acr.AMOUNT)/@TOTALN)*100 AS FLOAT) AS NUMERIC(10,1))
FROM ACCOUNTS act (NOLOCK), AC_AUDIT acr (NOLOCK)
WHERE act.ACCOUNT = acr.ACCOUNT
AND acr.REASON NOT LIKE '%Account Created%'
AND acr.AMOUNT < 0
GROUP BY
act.TYPE,
COALESCE(act.PRODUCT_NAME,'--None--'),
COALESCE(acr.METHOD,'--None--'),
CASE WHEN PATINDEX ( '%:%' , acr.REASON ) = 0 THEN acr.REASON
ELSE REPLACE(SUBSTRING(acr.REASON,1,PATINDEX('%:%', acr.REASON)), ':', '')
END,
COALESCE(act.CURRENCY,'--None--')
ORDER BY act.TYPE ASC
SELECT * FROM #TEMPP
UNION
SELECT * FROM #TEMPN
DROP TABLE #TEMPP
DROP TABLE #TEMPN
-
Answered your other post about this question.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
|