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 :

Concatenation d'une date dans Select


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Par défaut Concatenation d'une date dans Select
    Bonsoir,

    J'aimerais concatener une date dans mon select. Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT
                TOP 100 PERCENT REPLACE(CONVERT(varchar, Timestamp, 111), '/', '-') + CONVERT(varchar, SUM(CallsOffered))
    FROM    dbo.[Table1]
    GROUP BY REPLACE(CONVERT(varchar, Timestamp, 111), '/', '-')
    ORDER BY REPLACE(CONVERT(varchar, Timestamp, 111), '/', '-')
    ..et voici mon message d'erreur :

    ORDER BY items must appear in the select list if SELECT DISTINCT is specified

    Qqun aurais une idée ?
    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    Qu'essaie-tu de faire exactement ? Peux-tu présenter un exemple avec qq lignes de données ?

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Par défaut
    Bonjour,

    Oui, voici ce que j'obtiens actuellement:

    Champs1 Champs 2
    2008-11-01 ";"2";"0";"0";"32";"50";"0";"0"
    2008-11-02 ";"3";"0";"0";"45";"50";"1";"0"
    2008-11-03 ";"2";"0";"0";"44";"50";"3";"0"
    ...

    Dans mon code du message d'avant, je n'ai pas mis dans le select les autres champs étant donné que c'est un exemple.

    Et voici ce que je désire obtenir :

    "2008-11-01";"2";"0";"0";"32";"50";"0";"0"

  4. #4
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    la clause ORDER BY ne fonctionne pas parce que votre requête ne retourne qu'une seule colonne, et vous ordonnez les valeurs sur une partie de celles-ci.

    En fait, il faudrait que vous écriviez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT
                TOP 100 PERCENT REPLACE(CONVERT(varchar, Timestamp, 111), '/', '-') + CONVERT(varchar, SUM(CallsOffered))
    FROM    dbo.[Table1]
    GROUP BY REPLACE(CONVERT(varchar, Timestamp, 111), '/', '-')
    ORDER BY REPLACE(CONVERT(varchar, Timestamp, 111), '/', '-') + CONVERT(varchar, SUM(CallsOffered))
    Ou encore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT DISTINCT
                TOP 100 PERCENT REPLACE(CONVERT(varchar, Timestamp, 111), '/', '-') + CONVERT(varchar, SUM(CallsOffered)) AS maColonne
    FROM    dbo.[Table1]
    GROUP BY REPLACE(CONVERT(varchar, Timestamp, 111), '/', '-')
    ORDER BY maColonne
    @++

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Par défaut
    Non, justement !

    Ma requette me renvoi 2 colonnes : Champs1 (ma date) et Champs2 (le reste)
    Et je veux qu'elle me retourne qu'une seul colonne (même 2 s'il faut que la première soit la date, et la deuxième soit la date+le reste) en ayant ma date+le reste.

    J'ai essayé vos solutions et cela reste pareil, toujours même problème..

  6. #6
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Dans ce cas, écrivez :

    Ma requette me renvoi 2 colonnes
    Je vous jure que non

    @++

  7. #7
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Citation Envoyé par lucazzo Voir le message
    Non, justement !

    Ma requette me renvoi 2 colonnes : Champs1 (ma date) et Champs2 (le reste)
    Et je veux qu'elle me retourne qu'une seul colonne (même 2 s'il faut que la première soit la date, et la deuxième soit la date+le reste) en ayant ma date+le reste.

    J'ai essayé vos solutions et cela reste pareil, toujours même problème..
    Faux. Sauf s'il y'a une érreur qui s'est glissée dans le code que tu nous a posté.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

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

Discussions similaires

  1. Contrôler la validité d'une date dans le SELECT
    Par kyra2778 dans le forum SQL
    Réponses: 12
    Dernier message: 06/12/2011, 17h40
  2. Comment fixer une date dans un champ !
    Par LATHIOS dans le forum Access
    Réponses: 8
    Dernier message: 17/06/2005, 19h44
  3. [SQL] Conditions sur une date dans une requete
    Par poufouille dans le forum Bases de données
    Réponses: 4
    Dernier message: 17/03/2004, 14h25
  4. insérer une date dans une table mssql
    Par ericmart dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 29/01/2004, 10h37
  5. test la valeur d'une date dans une requete
    Par TuxP dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/01/2004, 14h53

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