Use the following TSQL template to test your solutions for TSQL Challenge 22
/***********************************************************************
----------------------------------------------
BASIC Testing Sandbox for TSQL Challenge 22
Copyright © beyondrelational.com
----------------------------------------------
Notes:
1. Copy this template and paste in your SSMS Query editor
2. Insert your query (solution for TSQL Challenge 22)
in the Section between "Insert your query below"
and "Insert your query above"
3. Run the whole batch. If you see
"Invalid Results...Failed!" getting printed in output
window, there is something wrong in the query.
Revision History:
Rev 00 - 21 March 2010 - Jacob Sebastian - Initial Release
***********************************************************************/
/*
Create a wrapper procedure around the solution
*/
IF OBJECT_ID('tempdb..#TestSolution') IS NOT NULL BEGIN
DROP PROCEDURE #TestSolution
END
GO
CREATE PROCEDURE #TestSolution AS
BEGIN
-- --------------------------------------------------
-- Create the 'Boxes' table
-- --------------------------------------------------
IF OBJECT_ID('TC22_Boxes','U') IS NOT NULL
BEGIN
DROP TABLE TC22_Boxes
END;
CREATE TABLE TC22_Boxes
(
BoxId INT IDENTITY PRIMARY KEY,
BoxName VARCHAR(20)
)
INSERT INTO TC22_Boxes (BoxName)
SELECT 'Box 1' UNION all
SELECT 'Box 2' UNION all
SELECT 'Box 3' UNION all
SELECT 'Box 4' UNION all
SELECT 'Box 5' UNION all
SELECT 'Box 6' ;
-- --------------------------------------------------
-- Create the 'Balls' table
-- --------------------------------------------------
IF OBJECT_ID('TC22_Balls','U') IS NOT NULL
BEGIN
DROP TABLE TC22_Balls
END;
CREATE TABLE TC22_Balls(
BallId INT IDENTITY PRIMARY KEY,
BallName VARCHAR(20)
);
INSERT INTO TC22_Balls (BallName)
SELECT 'Ball 1' UNION all
SELECT 'Ball 2' UNION all
SELECT 'Ball 3' UNION all
SELECT 'Ball 4' UNION all
SELECT 'Ball 5' UNION all
SELECT 'Ball 6' ;
-- --------------------------------------------------
-- Create the 'Preferences' table
-- --------------------------------------------------
IF OBJECT_ID('TC22_Preferences','U') IS NOT NULL
BEGIN
DROP TABLE TC22_Preferences
END;
CREATE TABLE TC22_Preferences(
PreferenceId INT IDENTITY PRIMARY KEY,
BoxId INT,
BallId INT
);
INSERT INTO TC22_Preferences (BoxID, BallID)
SELECT 1,1 UNION all
SELECT 2,1 UNION all
SELECT 2,3 UNION all
SELECT 3,2 UNION all
SELECT 3,3 UNION all
SELECT 4,1 UNION all
SELECT 4,2 UNION all
SELECT 4,3 UNION all
SELECT 4,4 UNION all
SELECT 4,5 UNION all
SELECT 4,6 UNION all
SELECT 5,4 UNION all
SELECT 5,5 UNION all
SELECT 6,5;
;
/* Insert your query below */
/* Insert your query above */
END
GO
SET NOCOUNT ON
/*
Start the testing phase
*/
DECLARE @x TABLE(
AutoID INT IDENTITY,
box VARCHAR(50),
ball VARCHAR(50)
)
-- Execute the code and
INSERT @x EXEC #TestSolution
DECLARE @z TABLE(
AutoID INT IDENTITY,
box VARCHAR(50),
ball VARCHAR(50)
)
INSERT INTO @z(box, ball) SELECT 'Box 1','Ball 1'
INSERT INTO @z(box, ball) SELECT 'Box 2','Ball 3'
INSERT INTO @z(box, ball) SELECT 'Box 3','Ball 2'
INSERT INTO @z(box, ball) SELECT 'Box 4','Ball 6'
INSERT INTO @z(box, ball) SELECT 'Box 5','Ball 4'
INSERT INTO @z(box, ball) SELECT 'Box 6','Ball 5'
-- Match the output with expected result.
IF EXISTS(
(SELECT * FROM @x EXCEPT SELECT * FROM @z)
UNION ALL
(SELECT * FROM @z EXCEPT SELECT * FROM @x))
BEGIN
PRINT 'Invalid Results...Failed!'
END ELSE BEGIN
PRINT 'Congratulations...Passed!'
END