TSQL Beginner's Challenge 2 - Basic Testing Sandbox



The following TSQL template can be used to perform a basic testing of your solutions for TSQL Beginners Challenge 2.

/***********************************************************************
 ---------------------------------------------- 
 BASIC Testing Sandbox for TSQL Begginers Challenge 2
 Copyright © beyondrelational.com
 ---------------------------------------------- 
***********************************************************************/
/*
	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
	DECLARE @tbl TABLE (Yr INT,Mon VARCHAR(50),Dy VARCHAR(50),Dyno INT)
	INSERT INTO @tbl(Yr, Mon, Dy, Dyno)
    SELECT 2010,'Jan','Sun',2 UNION ALL
	SELECT 2005,'Jan','Mon',3 UNION ALL
	SELECT 1995,'Feb','Sun',1 UNION ALL
	SELECT 2000,'Feb','Wed',4 UNION ALL
	SELECT 1982,'Mar','Tue',2 UNION ALL
	SELECT 2010,'Mar','Tue',8
	;

	/* Insert your query below */

	/* Insert your query above */
END
GO

SET NOCOUNT ON
/*
	Start the testing phase
*/

DECLARE @x TABLE(
	AutoID INT IDENTITY,
	Yr INT,
	Mon VARCHAR(50),
	Dy VARCHAR(50),
	Dyno INT,
	Date VARCHAR(100)
)

-- Execute the code and 
INSERT @x EXEC #TestSolution

DECLARE @z TABLE(
	AutoID INT IDENTITY,
	Yr INT,
	Mon VARCHAR(50),
	Dy VARCHAR(50),
	Dyno INT,
	Date VARCHAR(100)
)

INSERT INTO @z (Yr,Mon,Dy,Dyno,Date)
SELECT 1982,'Mar','Tue',2,'1982-03-09' UNION ALL
SELECT 1995,'Feb','Sun',1,'1995-02-05' UNION ALL
SELECT 2000,'Feb','Wed',4,'2000-02-23' UNION ALL
SELECT 2005,'Jan','Mon',3,'2005-01-17' UNION ALL
SELECT 2010,'Jan','Sun',2,'2010-01-10' UNION ALL
SELECT 2010,'Mar','Tue',8,'Invalid Date'

-- 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