Problème SQL

Résolu
domie81 Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   -  
Psyk974 Messages postés 559 Statut Membre -
Bonjour,

J'ai un souci de syntaxe... voici ma requête :

SELECT COUNT (DISTINCT Place.N_Place)
FROM Place, Type_Place, Location, Representation
WHERE (((Representation.Date)=#3/30/2009#
And (Representation.Date)=[Location].[Date])
AND ((Type_Place.Id_Type)=4) AND ((Place.Id_Type)=[Type_Place].[Id_Type])
AND ((Place.Id_Place)<>[Location].[Id_Place]));

quand j'execute celle ci j'ai un message d'erreur :

erreur de syntaxe (opérateur absent) dans l'expression "COUNT (DISTINCT Place.N_Place)

Je ne sais pas quoi faire!

Merci d'avance.
Configuration: Windows XP
Firefox 3.0.6

10 réponses

  1. Psyk974 Messages postés 559 Statut Membre 51
     
    Bonjour,

    SELECT DISTINCT Place.N_Place
    FROM Place, Type_Place, Location, Representation
    WHERE (((Representation.Date)=#3/30/2009#
    And (Representation.Date)=[Location].[Date])
    AND ((Type_Place.Id_Type)=4) AND ((Place.Id_Type)=[Type_Place].[Id_Type])
    AND ((Place.Id_Place)<>[Location].[Id_Place]));

    Ensuite tu comptes le nombre de ligne que te renvoi la requête

    Mais la je sais pas c'est quoi ton langage de programmation...
    0
  2. loicDu28 Messages postés 342 Statut Membre 53
     
    Bonjour,

    et si tu fais SELECT DISTINCT COUNT (Place.N_Place)
    FROM Place, Type_Place, Location, Representation
    WHERE (((Representation.Date)=#3/30/2009#
    And (Representation.Date)=[Location].[Date])
    AND ((Type_Place.Id_Type)=4) AND ((Place.Id_Type)=[Type_Place].[Id_Type])
    AND ((Place.Id_Place)<>[Location].[Id_Place]));

    cela te renvoie ce que tu souhaite ou pas?
    0
  3. domie81 Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   65
     
    Merci mais j'ai en fait un dossier a faire et je dois faire une requete qui doit me donner le nombre de place, d'où le count!

    Sinon oui je pourrais compter manuellement mais c'est pas ça qu'on me demande!

    Merci quand même.
    0
    1. Psyk974 Messages postés 559 Statut Membre 51
       
      SELECT COUNT (Place.N_Place)
      FROM Place, Type_Place, Location, Representation
      WHERE (((Representation.Date)=#3/30/2009#
      And (Representation.Date)=[Location].[Date])
      AND ((Type_Place.Id_Type)=4) AND ((Place.Id_Type)=[Type_Place].[Id_Type])
      AND ((Place.Id_Place)<>[Location].[Id_Place]))
      GROUP BY Place.N_Place;

      0
  4. domie81 Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   65
     
    Bonjour loic,

    Ben non ça marche toujours pas, ça ne me donne plus d'erreur mais un nombre complètement faux!
    0
    1. Psyk974 Messages postés 559 Statut Membre 51
       
      SELECT COUNT (Place.N_Place)
      FROM Place, Type_Place, Location, Representation
      WHERE (((Representation.Date)=#3/30/2009#
      And (Representation.Date)=[Location].[Date])
      AND ((Type_Place.Id_Type)=4) AND ((Place.Id_Type)=[Type_Place].[Id_Type])
      AND ((Place.Id_Place)<>[Location].[Id_Place]))
      GROUP BY Place.N_Place;

      fait comme ça
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. loicDu28 Messages postés 342 Statut Membre 53
     
    ok, donc essaye :

    SELECT DISTINCT Place.N_Place AS Place
    FROM Place, Type_Place, Location, Representation
    WHERE (((Representation.Date)=#3/30/2009#
    And (Representation.Date)=[Location].[Date])
    AND ((Type_Place.Id_Type)=4) AND ((Place.Id_Type)=[Type_Place].[Id_Type])
    AND ((Place.Id_Place)<>[Location].[Id_Place]));
    HAVING Count(Place)
    Group By Place

    si cela fonctionne pas, je voit pas trop.
    0
    1. Psyk974 Messages postés 559 Statut Membre 51
       
      Non comme ça

      SELECT COUNT (Place.N_Place)
      FROM Place, Type_Place, Location, Representation
      WHERE (((Representation.Date)=#3/30/2009#
      And (Representation.Date)=[Location].[Date])
      AND ((Type_Place.Id_Type)=4) AND ((Place.Id_Type)=[Type_Place].[Id_Type])
      AND ((Place.Id_Place)<>[Location].[Id_Place]))
      GROUP BY Place.N_Place;
      0
  7. loicDu28 Messages postés 342 Statut Membre 53
     
    c'est une proposition que je donne après, il choisit celle qui souhaite et celle qui fonctionne.

    Mais s'il veux rajouter le distinct, dans ta requête il le met où??
    0
    1. Psyk974 Messages postés 559 Statut Membre 51
       
      C'est le group by qui fera le DISTINCT....

      Et ton HAVING Count(place) il sert à rien si tu le compare à rien lol

      0
  8. loicDu28 Messages postés 342 Statut Membre 53
     
    ok, j'avoue sur le having, je trouvé cela bizarre mais c'était son distinct qui me bloqué en faite.

    si tu affirme que le group by fera le distinct (intéressant à savoir!!) ben je lui conseil de faire ta solution.
    0
    1. Psyk974 Messages postés 559 Statut Membre 51
       
      Je t'explique :

      La requête sans group by va donner ça

      element1 | 5
      element1 | 5
      element1 | 5
      element2 | 3
      element2 | 3
      ...

      Donc le group by va regrouper tout ça pour donner :

      element1 | 5
      element2 | 3
      ...

      Capiche ?
      0
  9. domie81 Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   65
     
    Le deux ne marchent toujours pas,
    mais la proposition de psy correspond au moins à un chiffre!
    0
    1. Psyk974 Messages postés 559 Statut Membre 51
       
      Si tu group by pas ça te donne quoi comme resultat ?

      Donne nous quelques exemples
      0
  10. loicDu28 Messages postés 342 Statut Membre 53
     
    ok, psyK je comprend mieux.
    0
  11. domie81 Messages postés 73 Date d'inscription   Statut Membre Dernière intervention   65
     
    sans group by c'est pareil...

    en fait je fait une requete pour savoir combien de places de spectacles n'ont pas été louée.

    quand je fais ma requete ca me donne comme réponse le nombre de place qui ne correspondent pas aux place loué et pas le nombre de places qui n'ont pas été louée...
    0
    1. Psyk974 Messages postés 559 Statut Membre 51
       
      D'accord donc ta requête de depart n'est meme pas bonne.
      Résout déjà ton problème de requête ensuite on en reparle
      0