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

Langage SQL Discussion :

Exporter des données en ASCII sur plusieurs colonnes


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Exporter des données en ASCII sur plusieurs colonnes
    Bonjour a tous,

    J'ai des données du mois de janvier de l’année 2009 a 2013 comme suite :
    2009010100_sf
    2009010106_sf
    2009010118_sf
    :
    :
    :
    2013013118_sf

    Je veux avoir des sorties en format ASCII d'une variable.
    j'utilise cette ligne de commande qui me permet d'avoir les données que je désire sur une seule colonne, mais moi je veux que a chaque fois qu'on traite une nouvelle année, on écris les données dans une nouvelle colonne.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    for yr in 2009 2010 2011 2012 2013 ; do 
    debut=${yr}010100
      fin=${yr}013118
    deltastamp=12
    date=${debut}
     
     
    echo " LA DATE $date "
    while test  "$date" -le "$fin"
    sqlite3 -separator ' ' data/$date'_'$obs_type "select AVG(OMP)  from header,DATA where varno=12001 and header.id_obs=data.id_obs" >> data_ua/T_output.txt
    done 
    date=`r.date -V $date +${deltastamp} | cut -c1-10`
    done
    Merci.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juin 2009
    Messages : 20
    Points : 30
    Points
    30
    Par défaut
    Pour pouvoir t'aider, il faut que tu nous donne la structure de tes tables ainsi qu'un échantillon de donnée représentatif pour chacune des tables présentes dans ta requête.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Voici la structure de mes donnée

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    ID_DATA integer primary key, 
    ID_OBS integer, 
    BURP_BTYP integer, 
    VCOORD integer, 
    VARNO integer, 
    VCOORD_TYPE integer, 
    OBSVALUE real, 
    FLAG integer, 
    OMP real, 
    OMA real, 
    OBS_ERROR real, 
    FG_ERROR real 
    )
    table|HEADER|HEADER|3|CREATE TABLE HEADER ( 
    ID_OBS integer primary key, 
    ID_STN varchar (50), 
    LAT real, 
    LON real, 
    CODTYP integer, 
    DATE integer, 
    TIME integer, 
    STATUS integer, 
    DELAY integer, 
    RUNN integer, 
    OARS integer, 
    ELEV real 
    )
    table|OmF|OmF|4|CREATE TABLE OmF ( 
    ID_OBS integer, 
    ID_DATA integer, 
    FHOUR integer, 
    OMF real 
    )
    index|idx1|DATA|793|CREATE INDEX idx1 ON DATA(ID_OBS, VCOORD,VARNO)
    index|idx2|OmF|1115|CREATE INDEX idx2 ON OMF(ID_DATA, FHOUR)
    table|sqlite_stat1|sqlite_stat1|1116|CREATE TABLE sqlite_stat1(tbl,idx,stat)
    table|resume|resume|1117|CREATE TABLE resume(date integer , time integer , run varchar(9))
    table|rdb4_schema|rdb4_schema|1119|CREATE TABLE rdb4_schema( schema  varchar(9) )

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2013
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sqlite3 2013013118_sf "select * from header limit 10 "
    1|71112|49.18|-123.08|146|20130131|180000|3072|3|22|788|16.0
    2|71130|53.33|-104.0|146|20130131|180000|3072|4|22|556|373.0
    3|71303|41.93|-82.52|146|20130131|180000|3072|8|22|1609|177.0
    4|BATEU04|64.2|-51.7|13|20130131|170000|3072|5|22|400|1.0
    5|TFHFN|64.2|-15.2|13|20130131|180000|3072|10|22|556|0.0
    6|TFSTD|66.4|-23.4|13|20130131|180000|3072|10|22|556|0.0
    7|TFKGR|65.7|-13.6|13|20130131|180000|3072|10|22|556|0.0
    8|TFGSK|64.1|-22.9|13|20130131|180000|3072|10|22|556|0.0
    9|TFBLK|65.7|-24.8|13|20130131|180000|3072|10|22|556|0.0
    10|TFGRV|63.8|-22.5|13|20130131|180000|3072|10|22|556|0.0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     sqlite3 2013013118_sf "select * from data limit 10 "
    1|1|32||10004|||0||||
    2|1|32||11011|||16||||
    3|1|32||11012|||16||||
    4|1|32||12004|||0||||
    5|1|32||12006|||0||||
    6|2|32||10004|||0||||
    7|2|32||11011|||16||||
    8|2|32||11012|||16||||
    9|2|32||12004|||0||||
    10|2|32||12006|||0||||

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Juin 2009
    Messages : 20
    Points : 30
    Points
    30
    Par défaut
    des explications supplémentaires sur votre besoin serai les bienvenus.

    je vais vous faire une réponse sans être sur que c'est bien ce que vous recherchez.
    de ce que je comprend vous voulez mettre en colonne les données retournés par votre requête.

    Pour cela, il faut utiliser cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SELECT avg_annee_en_cour , avg_annee_n-1, avg_annee_n-2, avg_annee_n-3, avg_annee_n-4
    FROM (
    SELECT varno, 
              AVG(CASE WHEN h.date = annee_en_cour then d.omp else 0 end) as avg_annee_en_cour , 
              AVG(CASE WHEN h.date = annee_n-1 then d.omp else 0 end) as avg_annee_n-1,
              AVG(CASE WHEN h.date = annee_n-2 then d.omp else 0 end) as avg_annee_n-2,
              AVG(CASE WHEN h.date = annee_n-3 then d.omp else 0 end) as avg_annee_n-3,
              AVG(CASE WHEN h.date = annee_n-4 then d.omp else 0 end) as avg_annee_n-4
    FROM header h, DATA d
    WHERE d.varno=12001 
    AND h.id_obs = d.id_obs
    GROUP BY varno);
    voici en gros la méthode.
    il faut bien sur utiliser les fonction de votre base de données pour remplacer annee_en_cour , annee_n-1, annee_n-2, annee_n-3, annee_n-4 pour la valeur de l'année correspondante.
    il faut aussi utiliser les fonctions de votre base de extraire uniquement l'année du champ DATE de votre table Header.

    j’espère que cela vous sera utile, dans le cas contraire merci de préciser le besoin.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/06/2014, 22h37
  2. [AC-2002] Exporter des données XML à partir de plusieurs tables
    Par ChrisP dans le forum Access
    Réponses: 1
    Dernier message: 18/11/2013, 15h18
  3. Réponses: 5
    Dernier message: 09/08/2010, 18h23
  4. [CR XI] section detail - afficher les données sur plusieurs colonnes
    Par Flamby38 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/09/2007, 14h44
  5. [Excel] Exporter des données sur Excel
    Par toffff dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 14/05/2007, 11h54

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