Results 1 to 4 of 4

Thread: Number format troubles (*Resolved*)

  1. #1

    Thread Starter
    Hyperactive Member Granty's Avatar
    Join Date
    Mar 2001
    Location
    London
    Posts
    439

    Number format troubles (*Resolved*)

    Hey folks,

    Below is part of a stored proc I have in SQL Server

    Code:
    CREATE PROCEDURE dbo.sp_Alerts_Billing_SendMail AS
    
    DECLARE @SendTo VARCHAR(100)
    DECLARE @MessageSubject VARCHAR(500)
    DECLARE @MessageContent VARCHAR(4000)
    
    DECLARE @TotalErrors VARCHAR(12)
    DECLARE @TotalValue VARCHAR(12)
    
    DECLARE @Date VARCHAR(12)
    DECLARE @Table VARCHAR(10)
    DECLARE @Code VARCHAR(12)
    DECLARE @CDRToday VARCHAR(12)
    DECLARE @CDRYesterday VARCHAR(12)
    DECLARE @CDRChange VARCHAR(12)
    DECLARE @ValToday VARCHAR(12)
    DECLARE @ValYesterday VARCHAR(12)
    DECLARE @ValChange VARCHAR(12)
    
    SELECT @TotalErrors = SUM(intTotalToday), @TotalValue = ROUND(sum(fltChargeToday),2)
    FROM tblBillingAlerts
    
    SELECT @Date = dtmDateTime
    FROM tblBillingAlerts
    
    SET @MessageContent = dbo.PadString('Total Errors', 18) + dbo.PadString('Total Value', 18) + '\r\n' 
    SET @MessageContent = @MessageContent + dbo.PadString(@TotalErrors, 18) + dbo.PadString(@TotalValue, 18) + '\r\n\r\n\r\n'
    SET @MessageContent = @MessageContent + dbo.PadString('Table', 10) + dbo.PadString('Code', 10) + dbo.PadString('CDR Today', 16)
    					       + dbo.PadString('CDR Yesterday', 16) + dbo.PadString('CDR Change(%)', 16) + dbo.PadString('Val Today(£)', 16) + dbo.PadString('Val Yesterday(£)', 18)
    					       + dbo.PadString('Val Change(%)', 16) + '\r\n'
    
    
    DECLARE AlertCursor CURSOR	LOCAL FAST_FORWARD 
    FOR
    SELECT nvchrSource, vchrErrorCode, intTotalToday, intTotalYesterday, fltTotalChange, fltChargeToday, fltChargeYesterday, fltChargeChange
    FROM tblBillingAlerts
    WHERE fltTotalChange > fltNumberThreshold 
    OR fltChargeChange > fltValueThreshold
    ORDER BY nvchrSource, vchrErrorCode
    
    OPEN AlertCursor
    
    FETCH NEXT FROM AlertCursor
    INTO @Table, @Code, @CDRToday, @CDRYesterday, @CDRChange, @ValToday, @ValYesterday, @ValChange
    
    
    WHILE @@FETCH_STATUS = 0
    BEGIN
    
    	SET @MessageContent = @MessageContent + dbo.PadString(@Table, 10) + dbo.PadString(@Code, 10) + dbo.PadString(@CDRToday, 16) 
    						       + dbo.PadString(@CDRYesterday, 16) + dbo.PadString(@CDRChange, 16) + dbo.PadString(@ValToday, 16) 
    						       + dbo.PadString(@ValYesterday, 18) + dbo.PadString(@ValChange, 16) + '\r\n'
    	
    	FETCH NEXT FROM AlertCursor
    	INTO @Table, @Code, @CDRToday, @CDRYesterday, @CDRChange, @ValToday, @ValYesterday, @ValChange
    	
    END
    The problem is not a big one, just an irritating one :P

    When the Value of @TotalErrors is over 1 million, it outputs to my mail as 1.00506e+006. I would just like it to be a normal number, not some hideous scientific thing.

    Anyone have any ideas how I can solve this?

    Cheers
    J.
    Last edited by Granty; Apr 4th, 2003 at 07:03 AM.

  2. #2
    Frenzied Member PilgrimPete's Avatar
    Join Date
    Feb 2002
    Posts
    1,313
    Where is it being converted - in the sp or in the calling process?

    Have you tried declaring @TotalErrors as an int and explicitly casting/converting it to a varchar?

  3. #3

    Thread Starter
    Hyperactive Member Granty's Avatar
    Join Date
    Mar 2001
    Location
    London
    Posts
    439
    The boy done good

    Cheers PilgrimPete

  4. #4
    Frenzied Member PilgrimPete's Avatar
    Join Date
    Feb 2002
    Posts
    1,313
    Glad to hear it.
    Weird behaviour though...

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width