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

Discussion :

Impossible de faire de requete SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Par défaut Impossible de faire de requete SQL
    Bonjour tout le monde !!

    Je dois faire une requete dans un état afin d'afficher un client selon son numéro qui est dans un champ de la table commande. Le mieux je pense est de faire une requete SQL avec comme restriction le numéro de ce client pour afficher son nom, ...

    J'ai donc fait un champ d'expression SQL et mis ma requete toute simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select "Client"."NomClient" from "Client" where NumeroClient="Commande"."VarUtil1"
    Mais ca ne marche pas, j'obtiens cette erreur :
    Erreur lors de compilation de l'expression SQL
    Echec de l'ouverture du jeu de lignes
    Détails : ADO Error Code 0x80040e14
    Source : Microsoft OLE DB Provider for SQL Server
    Description : Syntaxe incorrecte vers le mot clé 'SELECT'
    SQL state : 42000
    Native error : 156
    Je précise que j'ai essayé de passer par une connexion ODBC mais toujours la meme erreur
    Syntaxe incorrecte vers le mot clé 'SELECT'
    Je ne sais plus quoi faire ...

  2. #2
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par défaut
    Citation Envoyé par Vincinho Voir le message
    Bonjour tout le monde !!

    Je dois faire une requete dans un état afin d'afficher un client selon son numéro qui est dans un champ de la table commande. Le mieux je pense est de faire une requete SQL avec comme restriction le numéro de ce client pour afficher son nom, ...

    J'ai donc fait un champ d'expression SQL et mis ma requete toute simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select "Client"."NomClient" from "Client" where NumeroClient="Commande"."VarUtil1"
    Mais ca ne marche pas, j'obtiens cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Erreur lors de compilation de l'expression SQL
    Echec de l'ouverture du jeu de lignes
    Détails : ADO Error Code 0x80040e14
    Source : Microsoft OLE DB Provider for SQL Server
    Description : Syntaxe incorrecte vers le mot clé 'SELECT'
    SQL state : 42000
    Native error : 156
    Je précise que j'ai essayé de passer par une connexion ODBC mais toujours la meme erreur "Syntaxe incorrecte vers le mot clé 'SELECT'"

    Je ne sais plus quoi faire ...
    bonjour,

    Déjà, il me semble qu'il te manque la table "commande" dans ton from....

    Ensuite, dans Crystal, un rapport vierge, tu peux prendre les tables clients et commande, les lier par le champs commande.varutil1 ->client.numeroclient

    et regarder la requête que cela te donne.....

    tiens nous au courant

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Par défaut
    Oui il me manque la table mais meme en la rajoutant il me met le meme message d'erreur. A mon avis il va pas plus loin que le 'SELECT'.

    Meme quand je fais un état et que je récupère la requete SQL qu'il génère ca me fait encore le meme message d'erreur, il ne veut pas du 'SELECT'. Ca doit venir d'un autre problème mais je sais pas d'où

  4. #4
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par défaut
    Citation Envoyé par Vincinho Voir le message
    Oui il me manque la table mais meme en la rajoutant il me met le meme message d'erreur. A mon avis il va pas plus loin que le 'SELECT'.

    Meme quand je fais un état et que je récupère la requete SQL qu'il génère ca me fait encore le meme message d'erreur, il ne veut pas du 'SELECT'. Ca doit venir d'un autre problème mais je sais pas d'où
    Donc avec le rapport, cela fonctionne ??
    Plutôt que de créer une requête SQL simple...essaye de créer une procédure stockée et pointe ton rapport dessus.. je crois me rappeler qu'il y avait des souci avec les commende SQL directe sour CR8 jusqu'à 9.. pour la 10, elle est peut être encore là... comme la case à cocher pour le "Smartlinking"...

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Par défaut
    Nan ca marche pas. J'ai fais comme tu m'as dit j'ai fait un état qui n'affiche que le client selon son numéro présent dans la table commande, j'ai copié cette requete SQL que j'ai mis dans mon état principal mais toujours le meme message d'erreur.

    T'as de infos pour faire une procédure stockée ? j'y avais pensé en voyant d'autres messages mais je ne vois pas comment faire dans CR 10

    Merci

  6. #6
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par défaut
    Citation Envoyé par Vincinho Voir le message
    Nan ca marche pas. J'ai fais comme tu m'as dit j'ai fait un état qui n'affiche que le client selon son numéro présent dans la table commande, j'ai copié cette requete SQL que j'ai mis dans mon état principal mais toujours le meme message d'erreur.

    T'as de infos pour faire une procédure stockée ? j'y avais pensé en voyant d'autres messages mais je ne vois pas comment faire dans CR 10

    Merci

    Ca ne se fait pas dans Crystal.... il faut le faire sous SQL server Management un truc du genre....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    USE [Ta Base]
    GO
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
     
    CREATE Procedure [dbo].[MaProcedure] as
    SELECT Client.NomClient
    FROM Client,Commande
    WHERE Client.NumeroClient=Commande.VarUtil1

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 90
    Par défaut
    déjà je comprends pas pourquoi écrire le nom de la table entre deux guillemets?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select "Client"."NomClient" from "Client" where NumeroClient="Commande"."VarUtil1"
    il faut tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select Client.NomClient from Client where NumeroClient= Commande.VarUtil1

  8. #8
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par défaut
    Citation Envoyé par Tsunamy Voir le message
    déjà je comprends pas pourquoi écrire le nom de la table entre deux guillemets?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select "Client"."NomClient" from "Client" where NumeroClient="Commande"."VarUtil1"
    il faut tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select Client.NomClient from Client where NumeroClient= Commande.VarUtil1
    bonsoir,

    Je ne crois pas avoir de guillemets dans le code proposé....

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2009
    Messages
    191
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 191
    Par défaut
    Bonjour tout le monde,

    J'ai toujours des problèmes a faire des requetes SQL. Avant de m'occuper de ca, je voulais vous demander si vous trouveriez une autre solution qu'utiliser SQL.

    Je fais donc un état qui affiche un lancement avec ses composants en dessous. J'expliques un peu pour que vous compreniez mieux. J'ai une table article qui liste les articles avec leurs caractéristiques, une table lancement entete qui liste les lancements avec leurs caractéristiques principales et une table lancement corps qui liste le contenu des lancements. En gros, un lancement concerne un article "pere" (lancement entete) et son contenu liste les articles "fils", un ensemble d'articles pour former un article.

    Dans mon état j'ai donc en entete d'état (beaucoup d'entete ) qui contient les informations de la table lancement entete (nommé LCTE) et en dessous un groupe sur la colonne codearticle de la table lancement corps (nommé LCTC). Dans ce groupe je liste les articles par cette colonne codearticle avec leurs infos. Jusque la tout va bien, mais j'ai besoin d'afficher des informations sur les articles dans le corps du lancement qui sont présentes dans la table article et la j'ai un probleme.
    Comment puis je faire pour afficher ces infos sans utiliser SQL ? En mettant directement les colonnes de la table article dans les lignes du groupe il me met les infos qui correspondent a l'article "pere" dans l'entete lancement.

    Je précise que les liens sont bien fait (reprise d'un ancien état).

    Merci de votre aide et n'hesitez pas demander des précisions !!

  10. #10
    Modérateur
    Avatar de luc_chivas
    Profil pro
    Consultant BO/Crystal Reports
    Inscrit en
    Avril 2004
    Messages
    1 950
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant BO/Crystal Reports

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 950
    Par défaut
    bonjour

    de quel type d'information as tu besoin.. ce n'est pas de l'inquisition, mais si ce sont des aggrégats, cela est possible.. si ce sont d'autres informations, cela risque de poser problème car au moment de l'affichage, ces informations ne sont pas connu, à moins de faire un sous état pour les récupérer avant...

    d'une manière générale, essaye de mettre tes entêtes d'article dans un groupe, tu auras plus de possibilités, plutôt que dans l'entête...

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2008, 14h26
  2. [SQL] recupere les valeurs d'un liste puis faire une requete SQL
    Par 18Marie dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 22/06/2006, 12h50
  3. demande d'aide pour faire un requete sql
    Par carmen256 dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/04/2006, 09h50
  4. soucis a faire une requete SQL
    Par navona dans le forum Langage SQL
    Réponses: 7
    Dernier message: 01/09/2005, 16h19
  5. Réponses: 2
    Dernier message: 03/05/2004, 12h13

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