SQLUSA.com
SQL SERVER 2008 GRAND SLAM
FREE TRIAL  CLICK HERE TO ORDER  SEARCH
SQL JOBS SQL Server Training Scripts JOB BANK
  SQL Server 2008 Training Scripts  
  SQL Server 2005 Training Scripts  
News SQL Server Articles SQL Format

How to simulate a casino roulette?

Execute the following Microsoft SQL Server T-SQL script in Management Studio Query Editor to create and test a stored procedure with Monte Carlo simulation for roulette wheel.

 

-- SQL Server Generate Random Number - QUICK SYNTAX

SELECT LargeRandom=CONVERT(BIGINT, RAND() * 10000000000)

-- 3922837106

SELECT RandomRANDNewID = CEILING(RAND(CAST(NEWID() AS VARBINARY)) * 1000)

-- 668

SELECT RandomNewID= ABS(CONVERT(INT,CONVERT(varbinary, NEWID())))

-- 2138848854

------------

-- SQL RAND and NEWID functions for random number generation

-- T-SQL casino roulette wheel simulator stored procedure

USE AdventureWorks2008;

GO

CREATE PROC RouletteSimulator

           @Bet    INT,

           @Amount SMALLMONEY

AS

  BEGIN

    DECLARE  @Result  TABLE(

                            MESSAGE CHAR(30),

                            Wheel   INT,

                            Win     SMALLMONEY

                            )

    

    DECLARE  @Wheel INT

    

    IF (@Bet < 1

         OR @Bet > 36)

      BEGIN

        INSERT @Result

        SELECT 'Bet 1 through 36 only',

               -1,

               0

        

        SELECT *

        FROM   @Result

        

        RETURN

      END

    

    SET @Wheel = ROUND(RAND(CAST(NEWID() AS VARBINARY)) * 38,0,-1)

    

    IF (@Wheel = @Bet)

      BEGIN

        INSERT @Result

        SELECT 'Lucky! You won: ',

               @Bet,

               36 * @Amount

        

        SELECT *

        FROM   @Result

        

        RETURN

      END

    

    INSERT @Result

    SELECT 'Sorry, you lost',

           @Wheel,

           -1.0 * @Amount

    

    SELECT *

    FROM   @Result

  END

GO

 

-- Execute stored procedure - Run 38 simulations -- WHILE loop

-- Betting $100 on number >10<

DECLARE @Plays smallint = 38, @i smallint = 0

WHILE ( @i < @Plays)

BEGIN

      EXEC RouletteSimulator 10, 100.0

      SET @i += 1

END

GO

/* Partial results

 

MESSAGE                             Wheel       Win

Sorry, you lost                     31          -100.00

 

MESSAGE                             Wheel       Win

Lucky! You won:                     10          3600.00

 

MESSAGE                             Wheel       Win

Sorry, you lost                     36          -100.00

*/

------------

 

Order SQL 2008 GRAND SLAM Today!
SQLUSA.com Home Page
SQL Server Training at www.sqlusa.com.
SQL Server 2008 Video Training at www.sqlusa.com.
SQL Server 2005 Training Videos at www.sqlusa.com.
Microsoft SQL Server 2000 Training Videos at www.sqlusa.com.

FREE SQL & Business Intelligence / OLAP Short Videos on YOUTUBE.com

Microsoft Community Contributor 2011
Invest in Your SUCCESS!

Search SQLUSA FREE SQL Server Articles & FREE T-SQL Scripts


Copyright 2005-2011, SMI Corp. All Rights Reserved.

SQL Server 2012 is a program product of Microsoft Corporation.
SQL Server 2008 is a program product of Microsoft Corporation.
SQL Server 2005 is a program product of Microsoft Corporation.
SQL Server 2000 is a program product of Microsoft Corporation.