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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Requete SQL ... for Power User

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Requete SQL ... for Power User

n°190437
Rob Roy
Posté le 06-08-2002 à 01:55:14  profilanswer
 

Voila imaginons une table statut qui serait en relation avec une table user par une contrainte d'intégrité fonctionnelle
rapidement :
user (id_user, ...)
statut(id_statut,...,#id_user) (xxx une relation quelconque)
concretement un user a un statut a un moment ou un autre et peut en avoir un autre apres
 
Si l'on imagine ces relations au stade de devellopement, on peut tres bien imaginer un user avoir eut plusieurs statut et certains un seul.
 
Ce que j'aimerais c'est obtenir pour TOUS les id_user leur dernier statut cad pour moi son id_statut le plus grand
et tout cela dans UNE meme requete.
en gros j'aurais comme resultat :
id_user       |  plus grand id_statut
 
voila j'ai eut faire toutes les combinaisons possibles avec max, group by, et les select imbriqués mais je manque de fluide ce soir.
Merci a vous d'avance !
 
PS : fo que ca fonctionne pour access / SQL SERVER


Message édité par Rob Roy le 06-08-2002 à 03:54:40
mood
Publicité
Posté le 06-08-2002 à 01:55:14  profilanswer
 

n°190466
Rob Roy
Posté le 06-08-2002 à 06:29:14  profilanswer
 

.

n°190508
kuroineko
je mamgerais bien un truc la..
Posté le 06-08-2002 à 09:47:00  profilanswer
 

Rob Roy a écrit a écrit :

.




 
heu la je pense plutot a une structure function mais par contre pour t'aider a la rediger la je ne pense t'etre d'aucun secours...
 


---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
n°190518
kuroineko
je mamgerais bien un truc la..
Posté le 06-08-2002 à 09:54:37  profilanswer
 

kuroineko a écrit a écrit :

 
 
heu la je pense plutot a une structure function mais par contre pour t'aider a la rediger la je ne pense t'etre d'aucun secours...
 
 



:hello:  
function extract(int) return int as '
....recherche tous les MAXstatus
....selectionner dans cette liste celui dont UID est demander dans la fonction'
language pl/sql;
 
peut etre...


---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
n°190623
latruffe
Bdovore
Posté le 06-08-2002 à 11:59:08  profilanswer
 

kuroineko a écrit a écrit :

 :hello:  
function extract(int) return int as '
....recherche tous les MAXstatus
....selectionner dans cette liste celui dont UID est demander dans la fonction'
language pl/sql;
 
peut etre...




 
En fait, dand ce genre de cas, je rajouterais plus tôt un champ VALID_FROM et un champ VALID_TO dans ta table. Cela indique la valdité de chacune des lignes de ta table Status.
 
Comme ça, quand tu fais ta query, tu as juste besoin de faire
 
SELECT USER, STATUS FROM ...... WHERE Status.VALID_TO > NOW();
 
Le seul truc, c'est que quand tu ajoutes un status, faut que tu updates le VALID_TO de l'ancien status.

n°190703
redant
Posté le 06-08-2002 à 13:51:55  profilanswer
 


je crois que j'ai plus simple:
 
select user.id_user,max(id_statut) from user,statut where user.id_user=statut.id_user group by(user.id_user);

n°190784
Rob Roy
Posté le 06-08-2002 à 15:53:06  profilanswer
 

justement ca ne marche pas
cette requette bizarrement va classer les utilisateurs selon leur ordre de id_statut decroissant
c deja pas pas mal
mais bon si il y avait une solution directe, je suis pas contre

n°190798
redant
Posté le 06-08-2002 à 16:03:41  profilanswer
 

je ne comprends pas ce que tu veux faire,
pourrais-tu mettre un exemple avec des données et le résultat que tu attends

n°190810
Rob Roy
Posté le 06-08-2002 à 16:10:42  profilanswer
 

exemples de BD
USER
id_user
 1
 2
 3
STATUT
id_statut     #id_user
 1               1
 2               2
 3               1
 4               3  
 5               2
 
je veux que ma requete me renvoie  
id_statut     #id_user
 3               1
 5               2
 4               3
 
avec eventuellement le droit de supprimmer une des lignes si elle ne correspond pas a un critere (mais ca c une autre chose )
voila


Message édité par Rob Roy le 06-08-2002 à 16:11:24
n°190818
redant
Posté le 06-08-2002 à 16:17:03  profilanswer
 

bah finalement, c bien ce que j'avais compris et c bien le résultat que j'obtiens avec la requete que j'ai posté plus haut
(testé avec mysql)

mood
Publicité
Posté le 06-08-2002 à 16:17:03  profilanswer
 

n°190834
Rob Roy
Posté le 06-08-2002 à 16:34:04  profilanswer
 

le probleme c que ma requete n'est pas toute simple , c vrai que je n'ai pas tout dit
 
En fait, je fais des criteres de selection dans les groupes et ca chie des bulles
je crois que je vais etre obligé de bosser en 2 requetes
merci quand meme


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

  Requete SQL ... for Power User

 

Sujets relatifs
Pb de requete avec jointureSQL recuperer le plus grand id
Pb Catalogue Texte integral sous SQL server 7Listing de réponses d'une requête sur plusieurs pages
[NB] Help, c'est quoi la différence entre PL-SQL et SQLprobleme de date dans les requete
Problème requête MySql avec un ";" dedans (un peu de PHP aussi)[PHP] Pour savoir si une requete SQL a ete executee ou non ? [OK ]
Une conditionnelle dans une requête SQL ? 
Plus de sujets relatifs à : Requete SQL ... for Power User


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