Skip to content

Instantly share code, notes, and snippets.

@celsojr
Last active June 11, 2020 00:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save celsojr/bb41ca117297e99665302e1d6192569b to your computer and use it in GitHub Desktop.
Save celsojr/bb41ca117297e99665302e1d6192569b to your computer and use it in GitHub Desktop.
Generating a Json file from a SQL query
DECLARE @Participantes TABLE
(
Numero INT
)
INSERT INTO @Participantes VALUES (1), (2), (3)
DECLARE @RESPONSAVEL_TECNICO INT = 1
DECLARE @TRUE INT = 1
DECLARE @PRINCIPAL INT = 1
SELECT
-- PARTICIPANTE
P.Id AS 'id'
, P.CNPJ AS 'cnpj'
, ISNULL(P.NomeFantasia, p.RazaoSocial) AS 'nome_fantasia'
, P.RazaoSocial AS 'razao_social'
, P.Email AS 'email'
, REPLICATE('0', (5 - Len(CAST(P.Numero As Varchar)))) + CAST(P.Numero As Varchar) AS 'numero'
, P.RazaoSocialCertificado AS 'razao_social_certificado'
, P.AlvaraSanitario AS 'alvara_sanitario'
, P.InscricaoMunicipal AS 'inscricao_municipal'
, CONVERT(char(10), P.DataInscricao, 126) AS 'data_inscricao'
, P.SituacaoId AS 'situacao_id'
, CAST(P.RecebePlaca AS INT) AS 'recebe_placa'
, CAST(P.Estrangeiro AS INT) AS 'estrangeiro'
, CONVERT(char(10), P.Reativacao, 126) AS 'reativacao'
, P.MatrizId AS 'matriz_id'
, P.FontePagadoraCNPJ AS 'fonte_pagador_cnpj'
, P.FontePagadoraRazaoSocial AS 'fonte_pagador_razao_social'
, P.OrigemId AS 'origem_id'
, CAST(P.RecebePlanilha AS INT) AS 'recebe_planilha'
, CAST(P.NaoRecebeMaterial AS INT) AS 'nao_recebe_material'
, CAST(P.RecebeEmMaos AS INT) AS 'recebe_em_maos'
, P.TipoEstatalId AS 'tipo_estatal_id'
, CONVERT(char(10), P.DataPrimeiraAtivacao, 126) AS 'data_primeira_ativacao'
, CONVERT(char(10), P.DataCancelamento, 126) AS 'data_cancelamento'
, P.ContatoRecebimentoKit AS 'contato_recebimento_kit'
, CAST(P.CalculoAutomatico AS INT) AS 'calculo_automatico'
, P.Mensalidade AS 'mensalidade'
, P.InscMunFontePagadora AS 'insc_municipal_fonte_pagadora'
, P.InscEstFontePagadora AS 'insc_estadual_fonte_pagadora'
, P.CobrancaCNPJ AS 'cobranca_cnpj'
, P.CobrancaRazaoSocial AS 'cobranca_razao_social'
, P.KitRazaoSocial AS 'kit_razao_social'
, CONVERT(char(10), P.DataSolicitacaoInscricao, 126) AS 'data_solicitacao_inscricao'
, U.Senha AS 'password'
-- RESPOSÁVEL TÉCNICO
-- CONTATO
, C.Id AS 'responsavel_tecnico.contato.id'
, C.ParticipanteId AS 'responsavel_tecnico.contato.participante_id'
, C.AreaId AS 'responsavel_tecnico.contato.area_id'
, C.Nome AS 'responsavel_tecnico.contato.nome'
, C.Cargo AS 'responsavel_tecnico.contato.cargo'
, C.Telefone AS 'responsavel_tecnico.contato.telefone'
, C.Ramal AS 'responsavel_tecnico.contato.ramal'
, C.Fax AS 'responsavel_tecnico.contato.fax'
, C.Email AS 'responsavel_tecnico.contato.email'
, C.SocioSBAC AS 'responsavel_tecnico.contato.socio_sbac'
, C.Matricula AS 'responsavel_tecnico.contato.matricula'
, C.Conselho AS 'responsavel_tecnico.contato.conselho'
, C.NumeroConselho AS 'responsavel_tecnico.contato.numero_conselho'
, C.EstadoConselho AS 'responsavel_tecnico.contato.estado_conselho'
, C.SolicitacaoId AS 'responsavel_tecnico.contato.solicitacao_id'
, C.ColaboradorId AS 'responsavel_tecnico.contato.colaborador_id'
-- USUÁRIO
, U.Id AS 'responsavel_tecnico.usuario.id'
, U.ParticipanteId AS 'responsavel_tecnico.usuario.participante_id'
, U.Nome AS 'responsavel_tecnico.usuario.nome'
, U.[Login] AS 'responsavel_tecnico.usuario.login'
, U.Senha AS 'responsavel_tecnico.usuario.senha'
, U.Email AS 'responsavel_tecnico.usuario.email'
, U.StatusId AS 'responsavel_tecnico.usuario.status_id'
-- ENDEREÇO
, E.Id AS 'endereco.id'
, E.ParticipanteId AS 'endereco.participante_id'
, REPLACE(E.CEP, '.', '') AS 'endereco.cep'
, E.Tipo AS 'endereco.tipo'
, E.Logradouro AS 'endereco.logradouro'
, E.Numero AS 'endereco.numero'
, E.Complemento AS 'endereco.complemento'
, E.Bairro AS 'endereco.bairro'
, E.Cidade AS 'endereco.cidade'
, E.Estado AS 'endereco.estado'
, E.Pais AS 'endereco.pais'
, E.TipoEnderecoId AS 'endereco.tipo_endereco_id'
, E.Estrangeiro AS 'endereco.estrangeiro'
FROM Participantes P
INNER JOIN Contatos C ON C.ParticipanteId=P.Id
INNER JOIN Enderecos E ON E.ParticipanteId=P.Id
INNER JOIN Usuarios U ON U.ParticipanteId=P.Id
WHERE (1 = 1)
AND P.Numero IN (SELECT Numero FROM @Participantes)
AND C.AreaId = @RESPONSAVEL_TECNICO
AND ISNUMERIC(U.[Login]) = @TRUE
AND CAST(P.Numero AS VARCHAR) = U.[Login]
AND E.TipoEnderecoId = @PRINCIPAL
FOR JSON PATH
, INCLUDE_NULL_VALUES
, ROOT('listParticipant')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment