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 :

Ajout d'un ZERO sur extraction mois SQL SAP


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 21
    Points : 11
    Points
    11
    Par défaut Ajout d'un ZERO sur extraction mois SQL SAP
    Bonjour.

    QQun pourrait-il m'expliquer pourquoi lorsque j'utilise cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN (AUFK.ERDAT = ''00000000'' or AUFK.ERDAT IS NULL) THEN ''19700101'' ELSE CASE WHEN (LENGTH(MONTH(AUFK.ERDAT))<2) then concat(''0'',MONTH(AUFK.ERDAT)) ELSE  AUFK.ERDAT END END as "Mois de création",
    j'ai bien les mois à un chiffre ou se rajoute le ZERO et pour les autre une date complete

    Par contre pour cette requette, j'ai en permanence la valeur du mois non corrigée (1 pour janvier au lieu de 01)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN (AUFK.ERDAT = ''00000000'' or AUFK.ERDAT IS NULL) THEN ''19700101'' ELSE CASE WHEN (LENGTH(MONTH(AUFK.ERDAT))<2) then concat(''0'',MONTH(AUFK.ERDAT)) ELSE MONTH(AUFK.ERDAT) END END as "Mois de création",
    C'est du SAP SQL, mais je suis pas sur que ce soit spécifique à SAP.

    Merci à tous

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Décembre 2019
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Décembre 2019
    Messages : 1 138
    Points : 1 918
    Points
    1 918
    Par défaut
    Bonjour,

    Je ne connais pas SAP mais peut-être que MONTH(AUFK.ERDAT) convertit en nombre, donc sans zéro non significatif.
    Cela dit, il n'existe pas de fonction LPAD? CE serait plus simple à écrire, et pas besoin de tester la longueur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lpad(MONTH(AUFK.ERDAT), 2, '0')

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Utilisez la fonction FORMAT

    Exemple : FORMAT(MONTH(GETDATE()), '00')

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Merci.

    Entre temps j'avais trouver cette fonction, mais maintenant je me bats avec le fait que la semaine du premier janvier est la 52 et pas la 1.
    Je pense qu'il faut que je fasse 2 case when imbriqué, mais comme dans mon post d'origine j'ai l'mpression que mon imbrication ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN (AUFK.ERDAT = ''00000000'' or AUFK.ERDAT IS NULL) THEN ''19700101'' ELSE CASE WHEN (right(isoweek(AUFK.ERDAT),2) = ''53'' and MONTH(AUFK.ERDAT)=1) THEN 1 END END as "Semaine de création"
    Un truc comme ça mais le serveur m'insulte et je deviens fou en cette fin de journée

    edit du message

    cette condition ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN ( LENGTH(MONTH(AUFK.ERDAT)) = ''1'' ) THEN CONCAT(''0'', MONTH(AUFK.ERDAT)) ELSE MONTH(AUFK.ERDAT) END as "Mois de création",
    pouvez vous me dire pourquoi (= 1 ou = ''1'' ça fait pareil)

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par phoenix40 Voir le message
    Entre temps j'avais trouver cette fonction, mais maintenant je me bats avec le fait que la semaine du premier janvier est la 52 et pas la 1.
    C'est probablement une bonne chose, les semaines ISO ont l'avantage de faire toujours 7 jours ce qui est quand même bien pour comparer des chiffres d'une semaine sur l'autre.
    L'inconvénient c'est que la première et la dernière semaine ISO de l'année sont souvent à cheval. La semaine 1 c'est celle qui contient le premier jeudi.

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 737
    Points
    52 737
    Billets dans le blog
    5
    Par défaut
    Plus exactement, c'est la semaine qui contient une majorité de jours... 4 au minimum donc, puisque 7 jours dans une semaine...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Novembre 2017
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 21
    Points : 11
    Points
    11
    Par défaut
    Merci pour votre aide

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

Discussions similaires

  1. ajout d'un schema sur DB sql server
    Par olibara dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 19/03/2010, 22h03
  2. Extraction sur plusieurs mois
    Par lodan dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/03/2009, 10h31
  3. Réponses: 3
    Dernier message: 24/11/2008, 14h31
  4. Réponses: 4
    Dernier message: 12/08/2008, 12h20
  5. Ajout d'un certains nombre de mois sur une date
    Par ksper45 dans le forum Linux
    Réponses: 4
    Dernier message: 06/11/2007, 16h59

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