Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1049 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Probleme avec une requête

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec une requête

n°882468
Zoldik
Posté le 25-10-2004 à 20:53:49  profilanswer
 

Bonjours à tous,
 
J'ai un probleme avec une requete(je debute...).  
Je cherche à recuperer divers informations(sur plusieurs tables) pour chacun de mes stages sur une table: "stages".
 
Pour 1 stage il y a plusieurs dates possible(dans une table date "JOURS_SESSIONS2" qui a comme propriété Idjour entre autre) et le probleme de ma requete c'est que ca m'affiche plusieurs ligne pour 1 meme stage, seule la date change(j'ai autant de ligne que de dates possible) et je voudrais regrouper les dates, et n'avoir qu'une seule ligne par stage.
 
Voici ma requete actuelle:
SELECT  `STAGES`.`Libelle`,Precision_session,Publics,Prerequis_Publics,Contenu,
Objectif,Methode,Intervenant,Frais,Financement,`FORMCAT`.`Libelle`,IdEquiv,IdJour  
FROM `STAGES`,`FORMCAT`,`JOURS_SESSIONS2`,`STAGES_SESSIONS`
WHERE `STAGES`.`IdCategorie`=`FORMCAT`.`Id`
AND `STAGES`.`Id`=`STAGES_SESSIONS`.`IdStage`
AND `STAGES_SESSIONS`.`IdSession`=`JOURS_SESSIONS2`.`IdSession`
 
Voilà j'espere que ma question est clair et que quelqu'un pourras m'aider a modifier cette requette afin d'obtenir ce que je souhaite.
Merci d'avance pour votre aide.

mood
Publicité
Posté le 25-10-2004 à 20:53:49  profilanswer
 

n°882472
nimo
New.Internet.Master.Operator
Posté le 25-10-2004 à 21:01:52  profilanswer
 

tu utise quoi comme program pour faire ca ?
 
MySql? access ?  


---------------
NEC 3500 | YAMADA 6600 | NIMO_CORP
n°882487
Zoldik
Posté le 25-10-2004 à 21:13:59  profilanswer
 

c'est Mysql, via phpmyadmin.

n°882547
Yonel
Monde de merde !
Posté le 25-10-2004 à 21:57:29  profilanswer
 

Si j'ai bien compris, tu as des doublons (puisque plusieurs dates par stage) et tu veux les virer c'est ça ?
 
Dans ce cas il suffit de rajouter le mot clé "DISTINCT" à côté du SELECT.
Donc SELECT DISTINCT attr1,attr2,...
 
Si j'ai mal compris dis moi ce que tu veux et donne un schéma de ta table :jap:

n°882742
Zoldik
Posté le 26-10-2004 à 02:48:28  profilanswer
 

Non c'est pas ca, en fait en executant ma requête j'aimerais avoir autant de ligne que de stage en resultat. Le probleme c'est que ma requête actuelle avec ou sans distincct ca ne change rien, s'il  y plusieurs date qui corresponde à un meme stage j'ai plusieurs ligne avec seule la date qui change.
 
pour 1 shema pourquoi pas, mais connais tu 1 moyen d'en faire 1 automatiquement ? sinon jt'en ferai 1 juste avec les tables concerné.

n°882781
couak
Posté le 26-10-2004 à 08:37:42  profilanswer
 

hummm je suis pas sûr d'avoir compris, à première vue je dirais équi-jointure

n°883005
Yonel
Monde de merde !
Posté le 26-10-2004 à 13:15:26  profilanswer
 

Zoldik a écrit :

Non c'est pas ca, en fait en executant ma requête j'aimerais avoir autant de ligne que de stage en resultat. Le probleme c'est que ma requête actuelle avec ou sans distincct ca ne change rien, s'il  y plusieurs date qui corresponde à un meme stage j'ai plusieurs ligne avec seule la date qui change.
 
pour 1 shema pourquoi pas, mais connais tu 1 moyen d'en faire 1 automatiquement ? sinon jt'en ferai 1 juste avec les tables concerné.


 
Bah si la date change, c'est normal qu'à chaque ligne tu ai une date différente et que le distinct ne fasse pas d'effet (les enregistrements sont différents). Essaye de retirer la date du SELECT et rajoute le mot clé DISTINCT et tu ne seras plus embêté ;)

n°883621
Zoldik
Posté le 27-10-2004 à 01:30:54  profilanswer
 

Oui sauf que j'ai plus les dates, mais c'est pas grave j'ai trouver une alternative le probleme est reglé.
Merci.

n°883710
couak
Posté le 27-10-2004 à 10:22:28  profilanswer
 

merci d'en faire profiter aux autres, moi ca m'intéresse :)

n°885390
Jean-Miche​l Lambert
Posté le 28-10-2004 à 22:49:39  profilanswer
 

J'ai eu un cas similaire sous PostgreSQL.
 
J'ai utilisé une fonction pl/pgsql qui réalise une concaténation et stocke cette concaténation dans une table distincte (qui serait ici avec les champs stage et date_concat par exemple).
 
La fonction est déclanchée par un Trigger qui écoute quand il y a insertion ou modification dans la table à concaténer.
 
Enfin, je crée une vue qui interroge le champ concaténé plutôt que les champs initiaux.
 
Je ne sais pas si MySQL permet de faire ça maintenant.
 
On doit aussi pouvoir faire ça avec php en plusieurs requêtes.

mood
Publicité
Posté le 28-10-2004 à 22:49:39  profilanswer
 

n°885696
Arjuna
Aircraft Ident.: F-MBSD
Posté le 29-10-2004 à 12:14:16  profilanswer
 

Zoldik a écrit :

Oui sauf que j'ai plus les dates, mais c'est pas grave j'ai trouver une alternative le probleme est reglé.
Merci.


Si t'utilises plus les dates, il suffit de shooter la table "JOURS_SESSIONS2" de ta requête...
 
Sinon, mettons que tu voulais savoir combien il y avait de jours pour les stages, un :
 
SELECT  `STAGES`.`Libelle`,Precision_session,Publics,Prerequis_Publics,Contenu,  
Objectif,Methode,Intervenant,Frais,Financement,`FORMCAT`.`Libelle`,IdEquiv,count(IdJour)
...
GROUB BY SELECT  `STAGES`.`Libelle`,Precision_session,Publics,Prerequis_Publics,Contenu,  
Objectif,Methode,Intervenant,Frais,Financement,`FORMCAT`.`Libelle`,IdEquiv
 
Aurait fait l'affaire.
 
Tu pouvais aussi faire un "min(idjour)" pour retrouver le premier jour de la formation, ou "max(idjour)" pour retrouver le dernier...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Probleme avec une requête

 

Sujets relatifs
[MYSQL]probleme requete imbriquéeProblème avec une requête SQL comprenant "in"
Problème sur une requete de date[RESOLU] problème de condition sur un requête SQL
Problème de requete[resolu] probleme de requete avec DAY(date) et MONTH(date)
Problème de requêteProblème Access récupération value d'une TextBox dans une Requête
probleme de concaténation requete mysqlprobleme sur une requete SQL en php
Plus de sujets relatifs à : Probleme avec une requête


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR