TSQL Challenge 18 - Logic Testing Sandbox (Swedish)



Use the following TSQL template to test your solutions against the tricky date for TSQL Challenge 18

/***********************************************************************
 ---------------------------------------------- 
 LOGIC Testing Sandbox for TSQL Challenge 18
 With Swedish language settings.
 Copyright © beyondrelational.com
 ---------------------------------------------- 

 Notes:
 1. Copy this template and paste in your SSMS Query editor

 2. Insert your query (solution for TSQL Challenge 18) 
    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 - 23 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

	DECLARE @T TABLE (MTH INT, YR INT)
	INSERT @T SELECT  8,2009
	UNION ALL SELECT  2,1900
	UNION ALL SELECT  2,2015
	UNION ALL SELECT  2,2000
	UNION ALL SELECT 10,1959
	UNION ALL SELECT  9,2008
	UNION ALL SELECT  1,1975
	UNION ALL SELECT  5,1987
	;
	
	/* Insert your query below */

	/* Insert your query above */
	
END
GO

SET NOCOUNT ON
/*
	Start the testing phase
*/
SET LANGUAGE SWEDISH
SET DATEFIRST 6

DECLARE @x TABLE(
	AutoID INT IDENTITY,
	Calendar NVARCHAR(31)
)

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

DECLARE @z TABLE(
	AutoID INT IDENTITY,
	Calendar NVARCHAR(31)
)

INSERT INTO @z(Calendar)
SELECT N'+-----------------------------+' UNION ALL
SELECT N'|        FEBRUARI 1900        |' UNION ALL
SELECT N'|=============================|' UNION ALL
SELECT N'| sön mån tis ons tor fre lör |' UNION ALL
SELECT N'|-----------------------------|' UNION ALL
SELECT N'|                   1   2   3 |' UNION ALL
SELECT N'|   4   5   6   7   8   9  10 |' UNION ALL
SELECT N'|  11  12  13  14  15  16  17 |' UNION ALL
SELECT N'|  18  19  20  21  22  23  24 |' UNION ALL
SELECT N'|  25  26  27  28             |' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'|        OKTOBER 1959         |' UNION ALL
SELECT N'|=============================|' UNION ALL
SELECT N'| sön mån tis ons tor fre lör |' UNION ALL
SELECT N'|-----------------------------|' UNION ALL
SELECT N'|                   1   2   3 |' UNION ALL
SELECT N'|   4   5   6   7   8   9  10 |' UNION ALL
SELECT N'|  11  12  13  14  15  16  17 |' UNION ALL
SELECT N'|  18  19  20  21  22  23  24 |' UNION ALL
SELECT N'|  25  26  27  28  29  30  31 |' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'|        JANUARI 1975         |' UNION ALL
SELECT N'|=============================|' UNION ALL
SELECT N'| sön mån tis ons tor fre lör |' UNION ALL
SELECT N'|-----------------------------|' UNION ALL
SELECT N'|               1   2   3   4 |' UNION ALL
SELECT N'|   5   6   7   8   9  10  11 |' UNION ALL
SELECT N'|  12  13  14  15  16  17  18 |' UNION ALL
SELECT N'|  19  20  21  22  23  24  25 |' UNION ALL
SELECT N'|  26  27  28  29  30  31     |' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'|          MAJ 1987           |' UNION ALL
SELECT N'|=============================|' UNION ALL
SELECT N'| sön mån tis ons tor fre lör |' UNION ALL
SELECT N'|-----------------------------|' UNION ALL
SELECT N'|                       1   2 |' UNION ALL
SELECT N'|   3   4   5   6   7   8   9 |' UNION ALL
SELECT N'|  10  11  12  13  14  15  16 |' UNION ALL
SELECT N'|  17  18  19  20  21  22  23 |' UNION ALL
SELECT N'|  24  25  26  27  28  29  30 |' UNION ALL
SELECT N'|  31                         |' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'|        FEBRUARI 2000        |' UNION ALL
SELECT N'|=============================|' UNION ALL
SELECT N'| sön mån tis ons tor fre lör |' UNION ALL
SELECT N'|-----------------------------|' UNION ALL
SELECT N'|           1   2   3   4   5 |' UNION ALL
SELECT N'|   6   7   8   9  10  11  12 |' UNION ALL
SELECT N'|  13  14  15  16  17  18  19 |' UNION ALL
SELECT N'|  20  21  22  23  24  25  26 |' UNION ALL
SELECT N'|  27  28  29                 |' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'|       SEPTEMBER 2008        |' UNION ALL
SELECT N'|=============================|' UNION ALL
SELECT N'| sön mån tis ons tor fre lör |' UNION ALL
SELECT N'|-----------------------------|' UNION ALL
SELECT N'|       1   2   3   4   5   6 |' UNION ALL
SELECT N'|   7   8   9  10  11  12  13 |' UNION ALL
SELECT N'|  14  15  16  17  18  19  20 |' UNION ALL
SELECT N'|  21  22  23  24  25  26  27 |' UNION ALL
SELECT N'|  28  29  30                 |' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'|        AUGUSTI 2009         |' UNION ALL
SELECT N'|=============================|' UNION ALL
SELECT N'| sön mån tis ons tor fre lör |' UNION ALL
SELECT N'|-----------------------------|' UNION ALL
SELECT N'|                           1 |' UNION ALL
SELECT N'|   2   3   4   5   6   7   8 |' UNION ALL
SELECT N'|   9  10  11  12  13  14  15 |' UNION ALL
SELECT N'|  16  17  18  19  20  21  22 |' UNION ALL
SELECT N'|  23  24  25  26  27  28  29 |' UNION ALL
SELECT N'|  30  31                     |' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'+-----------------------------+' UNION ALL
SELECT N'|        FEBRUARI 2015        |' UNION ALL
SELECT N'|=============================|' UNION ALL
SELECT N'| sön mån tis ons tor fre lör |' UNION ALL
SELECT N'|-----------------------------|' UNION ALL
SELECT N'|   1   2   3   4   5   6   7 |' UNION ALL
SELECT N'|   8   9  10  11  12  13  14 |' UNION ALL
SELECT N'|  15  16  17  18  19  20  21 |' UNION ALL
SELECT N'|  22  23  24  25  26  27  28 |' UNION ALL
SELECT N'+-----------------------------+' 


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