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 :

Soucis Avec Un Prompt Sql


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1
    Par défaut Soucis Avec Un Prompt Sql
    Bonjour.

    Sur du développement en "Business Object", nous utilisons des prompts SQL: Sur un de ceux ci un message apparait me disant :

    Erreur lors de l'execution du sql (DA0003).
    [Microsoft](ODBC SQL Serveur Driver). La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et d'heure.


    Ma commande était celle là :
    hd_incident.logged_dt >= @prompt('date début période','D',,MONO,FREE)
    and hd_incident.logged_dt <= @prompt('date fin période','D',,MONO,FREE)
    Il doit y avoir une incompatibilité dans les types de données entre l'univers et la base de données.

    En SQL cela donne :
    SELECT
    hd_incident.owner_grp,
    hd_incident_audit.new_value,
    count(distinct(hd_incident.incident_id))
    FROM
    hd_incident_audit,
    hd_incident
    WHERE
    ( hd_incident.incident_id=hd_incident_audit.incident_id )
    AND (hd_incident.logged_dt >= @prompt('date début période','D',,MONO,FREE)
    and hd_incident.logged_dt <= @prompt('date fin période','D',,MONO,FREE) )


    Pouvez vous m'aider et le cas écheant me donner la bonne syntaxe de ce PROMPT, car je ne retrouve plus les options le concernant.

    J'en appel à votre savoir et votre gentillesse.

    Merci d'avance.

  2. #2
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Par défaut
    C'est pas franchement un problème SQL .

    Il doit y avoir une différence de format de date entre ta base de données et le prompt.

  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
    22 002
    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 : 22 002
    Billets dans le blog
    6
    Par défaut
    Votre requête est déjà mal écrite. Vous devrier l'écrire comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT I.owner_grp,
           IA.new_value,
           count(distinct(I.incident_id))
    FROM   hd_incident_audit AS  IA
           INNER JOIN hd_incident AS I
                 ON I.incident_id = IA.incident_id
    WHERE  I.logged_dt BETWEEN @prompt('date début période','D', , MONO,FREE)
                          AND  @prompt('date fin période',  'D', , MONO,FREE)
    1) Apprenez que les jointure dans le WHERE est une syntaxe qui date d'avant 1986 soit 20 ans de retard. Les jointures se font dans une clause JOIN.
    Lisez l'article que j'ai écrit à ce sujet :
    http://sqlpro.developpez.com/cours/sqlaz/jointures/#L2

    2) Utilisez un BETWEEN pour les fourchettes. C'est fait pour ça et c'est optimisé...

    3) Utilisez des alias (surnom de tables) afin de rendre votre requêtes plus lisible, plus facile à écrire et plus rapide à véhiculer

    Enfin en ce qui concerne votre erreur, les dates littérales doivent être passées au format ISO court, c'est à dire :
    AAAAMMJJ hh:mm:ss.nnn
    Exemple :
    20060713 17:14:21.123

    C'est LE SEUL FORMAT qui est garantit quelque soit la plateforme, la version de SQL Server, le client et les paramètrages régionaux.

    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/ * * * * *

Discussions similaires

  1. Souci avec une requête SQL
    Par req_sql dans le forum Langage SQL
    Réponses: 9
    Dernier message: 04/12/2014, 11h39
  2. [WD15] j'ai un petit souci avec ma requête sql
    Par cobos dans le forum WinDev
    Réponses: 12
    Dernier message: 07/02/2014, 12h53
  3. un souci avec une requette sql
    Par rec82 dans le forum Bases de données
    Réponses: 3
    Dernier message: 16/02/2009, 15h50
  4. PETIT souci avec un editeur SQL
    Par cantador dans le forum Outils
    Réponses: 5
    Dernier message: 05/08/2008, 19h39
  5. Requete SQL ajout Souci avec ""
    Par patrick55 dans le forum Access
    Réponses: 1
    Dernier message: 10/12/2005, 18h11

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