none
Enviar um Select já pronto para uma planilha excel e enviar diariamente por e-mail RRS feed

  • Pergunta

  • Boa Tarde!

    Hoje envio diariamente um relatório extraído de uma consulta SQL diariamente, porém a demanda de serviço aumentou e não está dando tempo de faze-lo, gostaria de saber se com esse mesmo select consigo exportar para excel e enviar por e-mail  DIARIAMENTE E AUTOMATICAMENTE???  Lembrando que também não consigo exporta-lo, (Vou colando coluna por coluna na planilha),

    Desde já agradeço pela atenção dispensada!

    OBS: vou enviar o Select que uso.

    select Protocolo.DataHoraLigacao,Protocolo.idProtocolo,Usuario.Nome, Municipe.Nome,Municipe.Telefone,municipe.Telefone2,Protocolo.TipoManifestacao,
    TipoTransporte.Descricao,
    EmpresaOnibus.Descricao,
    MotivoManifestacao.Descricao,
    TipoAtendimento.Descricao,
    Finalizacao.Descricao,
    Permissionaria,
    Concessionaria.Descricao,
    Percurso,
    Linha,
    Placa,
    Prefixo,
    SP,
    KM,
    Trecho,
    InformacaoOcorrencia,
    DescricaoSolucao,
    Locais,
    Municipio,
    Protocolo.CEP,
    Meio,
    Protocolo.DesejaReceberRetorno,
    Protocolo.Campanha


    from Protocolo 
    left join Usuario on Usuario.idUsuario = Protocolo.idUsuario
    left join Municipe on Municipe.idMunicipe = Protocolo.idMunicipe
    left join TipoTransporte on idTipoTransporte = Protocolo.TipoTransporte
    LEFT JOIN EmpresaOnibus on EmpresaOnibus.idEmpresaOnibus = Protocolo.EmpresaOnibus
    LEFT JOIN MotivoManifestacao on MotivoManifestacao.idMotivoManifestacao = Protocolo.MotivoManifestacao
    left join TipoAtendimento on TipoAtendimento.idTipoAtendimento = Protocolo.TipoAtendimento
    left join Finalizacao on Finalizacao.idFinalizacao = Protocolo.Finalizacao
    LEFT JOIN Concessionaria on Concessionaria.idConcessionaria = Protocolo.Concessionaria

    where month(DataHoraLigacao) = 01 
             and year(DataHoraLigacao) = 2014

    ORDER BY DataHoraLigacao

    quinta-feira, 6 de fevereiro de 2014 18:12

Respostas

  • Esse tópico pode te ajudar a exportar os dados para a planilha:

    http://stackoverflow.com/questions/7389637/export-sql-query-data-to-excel

    E esse para enviá-la por e-mail:

    http://blogs.msdn.com/b/sqlagent/archive/2010/11/10/sql-database-mail-send-emails-with-attachment.aspx

    Jogue a procedure que você irá criar dentro de um Job do SQLServer e deixe schedulado para processar diariamenteo.

    Segue link explicando como criar o job:

    http://imasters.com.br/artigo/257/sql-server/criando-e-executando-jobs-no-sql-server/

    Abraço!


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quinta-feira, 6 de fevereiro de 2014 18:30
  • Se for em SQL Server 2000, você pode usar a ferramentas de DTS para criar uma task que convert um resultado de uma query em Excel e enviar para o email... ainda pode agendar para executar diariamente

    http://imasters.com.br/artigo/1844/sql-server/dts-uma-ferramenta-para-facilitar-o-processo-de-etl/


    Microsoft Community Contributor

    quinta-feira, 6 de fevereiro de 2014 19:38
    Moderador
  • Vando,

    No Blog TechNet tem um exemplo em PowerShell pronto, com o arquivo PS1 dispoínvel para download.

    Segue abaixo o link do Blog, explicando passo à passo como o script foi criado:

    http://blogs.technet.com/b/joshs_sql_blog/archive/2013/03/19/exportsqlquerytoexcel.aspx

    e o link para download do arquivo PS1:

    http://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-9791-00-00-03-55-96-41/ExportToExcel.zip

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quinta-feira, 6 de fevereiro de 2014 19:16
    Moderador
  • VAndo,

    Se você estiver utilizando planilhas criadas no Excel 2007 ou 2010, recomendo utilizar o provider Microsoft.ACE ao invés do Microsoft Jet por questões de performance e maior compatibilidade com plataformas 64bits.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]


    sexta-feira, 7 de fevereiro de 2014 17:26
  • Rui,

    Se você estiver utilizando planilhas criadas no Excel 2007 ou 2010, recomendo utilizar o provider Microsoft.ACE ao invés do Microsoft Jet por questões de performance e maior compatibilidade com plataformas 64bits.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]


    Oi... concordo, mas acho que voce estava se referindo ao Vando ou ao Kanaãm.... eu só propus como resposta :-D

    Microsoft Community Contributor


    Rui,

    Sim, isso mesmo, valeu, já corrigi.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Marcado como Resposta Giovani Cr quinta-feira, 13 de fevereiro de 2014 11:53
    segunda-feira, 10 de fevereiro de 2014 12:54

Todas as Respostas

  • Esse tópico pode te ajudar a exportar os dados para a planilha:

    http://stackoverflow.com/questions/7389637/export-sql-query-data-to-excel

    E esse para enviá-la por e-mail:

    http://blogs.msdn.com/b/sqlagent/archive/2010/11/10/sql-database-mail-send-emails-with-attachment.aspx

    Jogue a procedure que você irá criar dentro de um Job do SQLServer e deixe schedulado para processar diariamenteo.

    Segue link explicando como criar o job:

    http://imasters.com.br/artigo/257/sql-server/criando-e-executando-jobs-no-sql-server/

    Abraço!


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quinta-feira, 6 de fevereiro de 2014 18:30
  • Vando,

    No Blog TechNet tem um exemplo em PowerShell pronto, com o arquivo PS1 dispoínvel para download.

    Segue abaixo o link do Blog, explicando passo à passo como o script foi criado:

    http://blogs.technet.com/b/joshs_sql_blog/archive/2013/03/19/exportsqlquerytoexcel.aspx

    e o link para download do arquivo PS1:

    http://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-9791-00-00-03-55-96-41/ExportToExcel.zip

    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA - SQL Server 2012
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quinta-feira, 6 de fevereiro de 2014 19:16
    Moderador
  • Se for em SQL Server 2000, você pode usar a ferramentas de DTS para criar uma task que convert um resultado de uma query em Excel e enviar para o email... ainda pode agendar para executar diariamente

    http://imasters.com.br/artigo/1844/sql-server/dts-uma-ferramenta-para-facilitar-o-processo-de-etl/


    Microsoft Community Contributor

    quinta-feira, 6 de fevereiro de 2014 19:38
    Moderador
  • VAndo,

    Se você estiver utilizando planilhas criadas no Excel 2007 ou 2010, recomendo utilizar o provider Microsoft.ACE ao invés do Microsoft Jet por questões de performance e maior compatibilidade com plataformas 64bits.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]


    sexta-feira, 7 de fevereiro de 2014 17:26
  • Rui,

    Se você estiver utilizando planilhas criadas no Excel 2007 ou 2010, recomendo utilizar o provider Microsoft.ACE ao invés do Microsoft Jet por questões de performance e maior compatibilidade com plataformas 64bits.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]


    Oi... concordo, mas acho que voce estava se referindo ao Vando ou ao Kanaãm.... eu só propus como resposta :-D

    Microsoft Community Contributor


    sexta-feira, 7 de fevereiro de 2014 17:58
    Moderador
  • Rui,

    Se você estiver utilizando planilhas criadas no Excel 2007 ou 2010, recomendo utilizar o provider Microsoft.ACE ao invés do Microsoft Jet por questões de performance e maior compatibilidade com plataformas 64bits.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]


    Oi... concordo, mas acho que voce estava se referindo ao Vando ou ao Kanaãm.... eu só propus como resposta :-D

    Microsoft Community Contributor


    Rui,

    Sim, isso mesmo, valeu, já corrigi.


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    • Marcado como Resposta Giovani Cr quinta-feira, 13 de fevereiro de 2014 11:53
    segunda-feira, 10 de fevereiro de 2014 12:54