Query 4 Fun – SQL Calendar!!!

Eu sou aquele tipo de idealista que acredita que é possível fazer qualquer coisa, até mesmo sem a ferramenta certa e que o único limite que existe é o “ambiente”, no caso da informática, o hardware. Gosto de afirmar isso aos meus alunos e companheiros, e como desafio, gosto de propor a criação de algo inusitado (utilizando os recursos que estão aprendendo), provando assim que não sou o único louco deste mundo!

Para demonstrar o que seria este algo inusitado, meu exemplo de como utilizar CTE, PIVOT e funções de data para criar algo para o qual o SQL “não nasceu”, exemplo:

DECLARE @Mes INT
,@Ano INT

SELECT @Mes = 8
,@Ano = 2010

;WITH CTE (Data) AS
(
  SELECT DATEADD(year, @Ano - 1900, DATEADD(month, @Mes - 1, 0))
  UNION ALL
  SELECT Data+1
  FROM CTE
  WHERE MONTH(Data + 1) = @Mes
)
SELECT
  [1] AS [Domingo]
, [2] AS [Segunda-Feira]
, [3] AS [Terça-Feira]
, [4] AS [Quarta-Feira]
, [5] AS [Quinta-Feira]
, [6] AS [Sexta-Feira]
, [7] AS [Sábado]
FROM (
	SELECT DAY(Data) AS Dia, DATEPART(weekday, Data) DiaSemana, DATEPART(week, Data) Semana
	FROM CTE
) AS Datas
PIVOT
(
	MAX(Dia) FOR DiaSemana
	IN ([1], [2], [3], [4], [5], [6], [7])
) AS A

E como resultado, o SQL Calendar:
SQL Calendar

Anúncios

7 pensamentos sobre “Query 4 Fun – SQL Calendar!!!

  1. Pingback: Descobrindo o resultado da Mega-Sena com SQL « SQL From Hell.com

  2. Pingback: Trabalhando com datas – Scripts para trabalhar com os dias de um mês « SQL From Hell.com

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s