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

SQL Oracle Discussion :

Créer un champ à partir de plusieurs [10g]


Sujet :

SQL Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut Créer un champ à partir de plusieurs
    Bonjour

    j'ai une vue qui regroupe un champ code et 12 champs date

    code date1 date2 date3......date12

    est-il possible , comme les dates sont toutes au même format, de créer un champ date ou toutes les dates y seraient. Il n' y aurait alors plus que

    code date .


    Merci beaucoup et bonne journée.

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Les dates n'ont pas de "format". Plus précisément ils ont toutes comme n'importe quel autre type des données un "format" de stockage interne!

    Il est possible d'utiliser une type de données Varray pour stocker les 12 dates mais vous devez nous donner plus des détails de ce que vous voulez accomplir.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Quand je dis qu'elles ont toutes le même format c'est parce que pour un tri j'utilise la fonction to_char:

    TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY')

    chaque code a une date différente dans les 12 champs date, donc pour faire un tri je dois trier chaque code sur chaque champ date, c'est pour ça que le fait de n'avoir qu'un champ me permettrait de faire seulement un tri.

    Si j'ai été assez clair...

  4. #4
    Membre averti Avatar de dariyoosh
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 236
    Points : 334
    Points
    334
    Par défaut
    Bonjour,

    Citation Envoyé par Olamb
    chaque code a une date différente dans les 12 champs date, donc pour faire un tri je dois trier chaque code sur chaque champ date, c'est pour ça que le fait de n'avoir qu'un champ me permettrait de faire seulement un tri.
    Je n'ai pas le code de votre vue, mais il se peut (bon, je ne dis pas 100%) que vous ayiez un problème de design.

    Pourquoi avez vous défini votre vue de cette façon avec 12 colonnes DATE? Pourquoi vous n'avez pas choisi une seule colonne dès le début? En fait, je pose la question puisque vous souhaitez les rassembler toutes en une seule colonne, donc d'un point de vue de sémantic les mettre toutes en une seule colonne, d'après vous, ne pose pas de problème, alors autant qu'à faire ça dès le début.

  5. #5
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par Olamb Voir le message
    ...
    Si j'ai été assez clair...
    Non ce n'est pas clair! Fournissez un petit jeu d'essai avec les données et le résultat que vous cherchez à obtenir.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    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
    CREATE OR REPLACE FORCE VIEW "S02"."NEXT" ("OTP", "LAST", "Next1", "Next2", "Next3", "Next4", "Next5", "Next6", "Next7", "Next8", "Next9", "Next10", "Next11", "Next12")
    AS
    SELECT ct.cd_pwo ,
        ct.DT_REAL_LAST_END,
        add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday)Next1,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*2) Next2,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*3) Next3,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*4)Next4,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*5) Next5,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*6)Next6,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*7)Next7,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*8)Next8,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*9)Next9,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*10)Next10,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*11)Next11,
        Add_Months(TO_CHAR(Dt_Next_Bgn,'DD/MM/YYYY'),Val_Nextday*12) Next12
      FROM Cm_Trigger Ct , Pws
      WHERE Pws.Cd_Pwo <> 1
      AND Pws.Cd_Pwo =Ct.Cd_Pwo
      AND Ct.Bo_Active='1'
      ORDER BY 1 ASC;

    j'ai une date de prochain déclenchement Dt_next_bgn à laquelle j'ajoute val_next_day qui est la périodicité des déclechements.Comme j'ai des périodicités à 1 mois comme à 36 mois, pour avoir une visu sur une année, j'ai 12 dates.C'est sûr que si directement en faisant ma vue j'arrivai à les mettre toutes dans un même champ ça serait top.

    Merci.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Bonjour,

    j'ai trouvé ce que je voulais sur le forum.

    Merci

  8. #8
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 394
    Points
    18 394
    Par défaut
    Quelle est votre solution finale ?
    Le code de la vue que vous avez posté un peu plus haut est faux.

    Vous prenez une date, que vous convertissez en chaîne de caractères, à laquelle vous faites une opération de dates dessus : add_months prend une date dans son premier paramètre et un nombre dans le second.

    Les conversions implicites font que le résultat est probablement juste, néanmoins le code reste faux.
    Il faut appliquer le to_char une fois la date calculée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TO_CHAR(add_Months(Dt_Next_Bgn, Val_Nextday), 'DD/MM/YYYY') as Next1

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2011
    Messages : 18
    Points : 9
    Points
    9
    Par défaut
    Merci, je vais corriger mais j'arrivais au résultat souhaité.
    Je me suis servis de ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Colonne1 FROM table1 WHERE ...
    UNION
    SELECT Colonne1 FROM Table2 WHERE ...
    .

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/01/2023, 13h12
  2. Réponses: 6
    Dernier message: 13/07/2010, 15h40
  3. Réponses: 0
    Dernier message: 27/05/2009, 12h16
  4. Créer un graphique à partir de plusieurs bases
    Par zorgov dans le forum SAP Crystal Reports
    Réponses: 0
    Dernier message: 28/10/2008, 16h48
  5. Créer un bitmap à partir de plusieurs autres
    Par MiJack dans le forum Delphi
    Réponses: 4
    Dernier message: 08/06/2006, 14h47

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