IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

Création d'un fichier Excel à partir d'une requête SQL Serveur 2012


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Création d'un fichier Excel à partir d'une requête SQL Serveur 2012
    Bonjour,
    Débutant en SQL , je cherche à créer un fichier xls ou txt à partir du résultat donné par une requête SQL que voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    WITH Tableau_Croise AS (
    SELECT  
    Calculated_Site as Site,
    Calculated_Salle as Salle,
    -- Recherche du nom du TDHQ
    SUBSTRING(intouch_comment,charindex ('-T',intouch_comment)+1,7) as TDHQ,	
    -- Recherche de l'intensité par phase ou de la puissance TDHQ
    replace(right(intouch_comment,2),'le','kW') as Paramètre,
    -- Extraction en numérique du n° du TDHQ
    str(substring(SUBSTRING(intouch_comment,charindex ('-T',intouch_comment)+1,charindex (' - ',intouch_comment) - charindex ('-T',intouch_comment)),8,2)) as Num_TDHQ,
    round(value,2) as Valeur
    FROM geteb.dbo.t_ConfigInTouch,runtime.dbo.v_AnalogHistory
    where
     t_ConfigInTouch.InTouch_TagName=v_AnalogHistory.TagName
    AND Calculated_Site='MSO'
    AND TagName like '%TD[HM][QT]%'
    AND (InTouch_Comment not like '%tané IN%' and InTouch_Comment not like '%TOR%' and InTouch_Comment not like '%réact%'and InTouch_Comment not like '%appar%')
    AND (InTouch_EngUnits like '%A%' or InTouch_EngUnits like '%kW%')
    AND wwResolution='3600000'
    AND wwRetrievalMode ='average'
    AND wwVersion ='original'
    AND DATETIME >DATEADD(HH,-1,GETDATE()) -- permet de recupérer la date et l'heure d'aujourdui -1 heure
    AND Datetime <= GetDate() -- Date et heure d'aujourd'hui--
    )
    SELECT *
      FROM Tableau_Croise
      PIVOT ( MAX( Valeur )
       FOR Paramètre IN ( [I1] , [I2], [I3], [kW] )) AS PVT
       order by  Salle,TDHQ, Num_TDHQ;
    J'ai essayé la fonction CREATE TABLE Matable as ( MonCode) avec différentes syntaxes mais je n'arrive à rien... sinon à des rejets de commande sur erreur. Quelqu'un a une idée? Merci

  2. #2
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Help...
    Bonjour,
    J'ai essayé aussi avec une requête du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    SELECT  
    Calculated_Site as Site,
    Calculated_Salle as Salle,
    --Tagname as TDHQ,
    --intouch_comment as Commentaires,
    --concat (SUBSTRING(intouch_comment,charindex ('-T',intouch_comment)+1,charindex (' - ',intouch_comment) - charindex ('-T',intouch_comment)),' ',replace(right(intouch_comment,2),'le','P')) as TDHQ,
    -- Recherche du nom du TDHQ
    SUBSTRING(intouch_comment,charindex ('-T',intouch_comment)+1,charindex (' - ',intouch_comment) - charindex ('-T',intouch_comment)) as TDHQ,
    -- Recherche de l'intensité par phase ou de la puissance TDHQ
    replace(right(intouch_comment,2),'le','P') as Paramètre,
    --charindex (' - ',intouch_comment) as Ma_pos
    round(value,2) as Valeur
    --sum ( round(value,2) ) as I1
     
    into Ma_Tab FROM geteb.dbo.t_ConfigInTouch,runtime.dbo.v_AnalogHistory
    --pivot (sum(round(value,2)) for Paramètre in Valeur) as mon_gag
    where
     t_ConfigInTouch.InTouch_TagName=v_AnalogHistory.TagName
    AND Calculated_Site='MSO'
    AND TagName like '%TD[HM][QT]%'
    AND (InTouch_Comment not like '%tané IN%' and InTouch_Comment not like '%TOR%' and InTouch_Comment not like '%réact%'and InTouch_Comment not like '%appar%')
    AND (InTouch_EngUnits like '%A%' or InTouch_EngUnits like '%kW%')
    AND wwResolution='3600000'
    AND wwRetrievalMode ='average'
    AND wwVersion ='original'
    AND DATETIME >DATEADD(HH,-1,GETDATE()) -- permet de recupérer la date et l'heure d'aujourdui -1 heure
    AND Datetime <= GetDate() -- Date et heure d'aujourd'hui
    order by Salle
    Avec l'instruction "into Ma_Tab" je crée bien une table mais dans ma base de données, mais je cherche à créer un fichier de données texte ou xls dans un répertoire du style C:\Mes_Documents.
    Est-ce que quelqu'un aurait une solution, jusque la ma question ne semble pas passionner... Merci pour votre contribution

  3. #3
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 229
    Points : 265
    Points
    265
    Par défaut
    Bonjour,

    Pour exporter vers un fichier texte, une solution est d'utiliser bcp via la fonction xp_cmdshell (solution un peu compliquée).

    Le mieux et si cela vous convient, c'est de fonctionner à l'envers : faites une procédure stockée avec votre requête et appelez-la depuis Excel via une connexion de données à SQL Server.

    @+

  4. #4
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    Avec SQL Server, SSIS est fournis par défaut. Pourquoi ne pas faire un petit package qui se schedule assez simplement qui va exécuter la requête et générer le fichier souhaité?

    Certaines tâches ne sont pas nécessairement à réaliser côté SQL Server

    En plus, côté maintenabilité, le package à l'avantage d'être assez clair.


    Cordialement,
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Merci pour ces réponses, mais...
    En fait j'ai essayé avec 'bcp via la fonction xp_cmdshell mais il semblerait que mon serveur ne dispose pas de la ressource. Je me fait jeter lorsque je lance une commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQL Server blocked access to procedure 'sys.xp_cmdshell' of component 'xp_cmdshell' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'xp_cmdshell' by using sp_configure. For more information about enabling 'xp_cmdshell', search for 'xp_cmdshell' in SQL Server Books Online.
    Je vais essayer avec le SSIS qui est lui dispo sur mon serveur. Le pb est que je ne connais pas du tout. Je vais commencer par le tuto de Fleur-Anne... Cordialement et merci encore. Votre aide m'a tout de même été d'n grand secours

  6. #6
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    Très bonne idée, le tuto de Fleur Anne est très bien fait et très explicite

    Si tu as plus de questions, il y a aussi le forum BI

    Et pour ton soucis de xp_cmdshell, la fonction est désactivée par défaut. Tu peux l'activer via la commande suivante :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    EXEC sp_configure 'show advanced options', 1;
    GO
    RECONFIGURE;
    GO
    EXEC sp_configure 'xp_cmdshell', 1;
    GO
    RECONFIGURE;
    GO
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

  7. #7
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mai 2012
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 76
    Points : 65
    Points
    65
    Par défaut Merci encore !!!!
    Merci Lynche une fois de plus tu me tire une aiguille du pied. Meric pour ta patience et tes conseils. Bien cordialemnent

  8. #8
    Expert éminent
    Avatar de Lyche
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2007
    Messages
    2 523
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 523
    Points : 6 775
    Points
    6 775
    Billets dans le blog
    4
    Par défaut
    Pense au tag résolu

    merci
    Rejoignez la communauté du chat et partagez vos connaissances ou vos questions avec nous

    Mon Tutoriel pour apprendre les Agregations
    Consultez mon Blog SQL destiné aux débutants

    Pensez à FAQ SQL Server Ainsi qu'aux Cours et Tuto SQL Server

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2010] Creer un fichier excel à partir d'une requête sql
    Par NassCorp dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/08/2013, 17h02
  2. [WD18] Ecrire dans un fichier txt à partir d'une requête SQL
    Par Blooster dans le forum WinDev
    Réponses: 4
    Dernier message: 29/05/2013, 11h03
  3. Réponses: 3
    Dernier message: 23/09/2009, 21h19
  4. création fichier Excel à partir d'une application WPF
    Par modafine dans le forum Windows Presentation Foundation
    Réponses: 8
    Dernier message: 01/08/2008, 08h53
  5. Réponses: 10
    Dernier message: 23/10/2007, 15h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo