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

MS SQL Server Discussion :

requete sql server


Sujet :

MS SQL Server

  1. #21
    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
    Sur votre seconde requête il manque une virgule après b.InstanceName.

    Pour le problème de format de données, vous pouvez donner le résultat de la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select top 50 distinct CounterDateTime
      from dbo.CounterData

  2. #22
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Points : 25
    Points
    25
    Par défaut
    quand j'execute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT a.CounterID,b.ObjectName,b.MachineName,b.InstanceName,
    DATEPART(day, Cast(a.CounterDateTime AS DateTime)) AS JOUR, 
    AVG(a.CounterValue) AS MOYENNE
    FROM
      dbo.CounterData as a FULL OUTER JOIN dbo.CounterDetails as b
      ON a.CounterID=b.CounterID
    GROUP BY  
      	a.CounterID,b.ObjectName,b.MachineName,b.InstanceName,a.CounterDateTime;
    j'ai encore le msg d'erreur:
    Server: Msg 241, Level 16, State 1, Line 1
    Syntax error converting datetime from character string.
    En concernant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT top 50 DISTINCT CounterDateTime
      FROM dbo.CounterData;
    ça me fait le msg:
    Server: Msg 156, Level 15, State 1, Line 1
    Incorrect syntax near the keyword 'DISTINCT'.
    A votre avis, pourquoi ça ne marche toujours pas?

  3. #23
    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
    Intervertissez DISTINCT et TOP 50.
    Vous êtes très débutant n'est-ce pas ?

  4. #24
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Points : 25
    Points
    25
    Par défaut
    ouiiii, exact, je suis débutante du coup je n'arrive pas à repérer les erreurs même les les plus banales

  5. #25
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Points : 25
    Points
    25
    Par défaut
    Vous avez une idée pourquoi ma requête ne s'exécute pas ?

  6. #26
    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
    Oui, c'est parce que votre colonne CounterDateTime qui est censée contenir une date n'a pas un format bien défini.
    C'est justement pour voir quelques données que je vous demande cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT DISTINCT top 50 CounterDateTime
      FROM dbo.CounterData

  7. #27
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Points : 25
    Points
    25
    Par défaut
    2010-02-23 18:15:08.717
    2010-02-23 18:20:08.715
    2010-02-23 18:25:08.714
    ...

    voilà c'est le résultat de requete.

    NB: CounterDateTime est de type Char

  8. #28
    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
    On peut essayer ça alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT DISTINCT top 50 CounterDateTime
      FROM dbo.CounterData
     WHERE isdate(CounterDateTime) = 0

  9. #29
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Points : 25
    Points
    25
    Par défaut
    cette requête me fait sortir un ensemble de dates, or moi, j'ai besoin que ma requête s'exécute sans message d'erreur

    Ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT a.CounterID,b.ObjectName,b.MachineName,b.InstanceName,
    DATEPART(week, Cast(a.CounterDateTime AS DateTime)) AS SEMAINE, 
    AVG(a.CounterValue) AS MOYENNE
    FROM
      dbo.CounterData as a FULL OUTER JOIN dbo.CounterDetails as b
      ON a.CounterID=b.CounterID
    GROUP BY  
     a.CounterID,b.ObjectName,b.MachineName,b.InstanceName,a.CounterDateTime;
    Le message d'erreur:
    Server: Msg 241, Level 16, State 1, Line 1
    Syntax error converting datetime from character string.
    Je veux en fait calculer la moyenne journalière comme j'ai expliqué précédemment.

  10. #30
    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
    Ce que j'essaie de vous amener à comprendre, c'est que vos "dates" stockées dans un char ne sont pas toujours des dates, contrairement à ce que vous pensez.

    De surcroit c'est exactement ce que dis le message d'erreur :
    Syntax error converting datetime from character string.

  11. #31
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Points : 25
    Points
    25
    Par défaut
    Vous voulez dire que je dois modifier le type de la colonne à DateTime au lieu de Char?

  12. #32
    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
    Si vous le pouvez, c'est évidemment la meilleure solution.

    Quel est l'intéret de stocker des dates dans du texte ?
    Réponse : aucun

  13. #33
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Points : 25
    Points
    25
    Par défaut
    huuummmm, exact
    Merci Waldar pour vos réponses.

    Bonne journée à vous.

  14. #34
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 55
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    voilà, je suis de retour, et malheureusement je ne peux pas modifier le type en DateTime, je dois le garder en Char.

    ma requête est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT a.CounterID,b.ObjectName,b.MachineName,b.InstanceName,
    DATEPART(day, Cast(a.CounterDateTime AS DateTime))as JOUR, 
    AVG(a.CounterValue) AS MOYENNE
    FROM
      dbo.CounterData as a FULL OUTER JOIN dbo.CounterDetails as b
      ON a.CounterID=b.CounterID
    GROUP BY  
     a.CounterID,b.ObjectName,b.MachineName,b.InstanceName,a.CounterDateTime;
    Le Cast ne fonctionne pas pour convertir CounterDateTime en DateTime.

    Merci d'avance pour votre aide.

Discussions similaires

  1. formater montant requete sql server
    Par esthr dans le forum Développement
    Réponses: 1
    Dernier message: 19/10/2007, 12h58
  2. % dans une requete SQL-Server
    Par 18Marie dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/10/2006, 13h02
  3. Requête SQL Server comme source d'un état
    Par gambi dans le forum Requêtes et SQL.
    Réponses: 14
    Dernier message: 04/09/2006, 16h38
  4. Convertisseur de requete SQL-SERVER en ACCESS
    Par emazes dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/12/2005, 09h12
  5. probleme avec creation requete sql server
    Par Firas_tn dans le forum MS SQL Server
    Réponses: 19
    Dernier message: 15/04/2005, 12h12

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