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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Résolu] Problème de requête

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Problème de requête

n°1971173
gocho
Posté le 04-03-2010 à 14:07:39  profilanswer
 

Bonjour,  
 
Je suis actuellement sous Access 2000, et j'ai un petit problème de requete.
 
Soit la table T (num, date, code)
avec les valeurs suivantes :  

Code :
  1. 11111 01/01/2009 PAAAAA
  2. 11111 01/01/2009 OAAAAA
  3. 22222 01/02/2009 PAAAAA
  4. 33333 01/05/2009 PAAAAA
  5. 44444 01/04/2009 OAAAAA
  6. 44444 01/04/2009 PAAAAA
  7. 44444 01/03/2009 PAAAAA
  8. 44444 01/03/2009 OAAAAA
  9. 44444 01/03/2009 PAAAAA
  10. 44444 01/03/2009 PAAAAA
  11. 44444 01/03/2009 OAAAAA


 
Je tente de récupérer l'ensemble des lignes (num, date) pour lesquelles :  
il existe un code commencant par P et pas de code commencant par O correspondante
 
Par exemple, les num 22222 et 33333 sont retournées (il y a un P, mais pas de O)
Pas de problème pour ces deux là.
 
Mais je galère plus lorsqu'il y a des O, mais que le nombre de P est supérieur.
Par exemple, je devrais également récupérer la ligne  

Code :
  1. 44444 01/03/2009 PAAAAA


car pour ce couple (num, date) il existe un P pour lequel il n'y a pas de O.
 
J'ai beaucoup de mal à voir comment construire ma requete.
Si quelqu'un avait un petit coup de pouce, une direction dans laquelle m'orienter (intersect, having ?)
Pas une solution toute faite, j'préfère trouver avec un peu d'aide :)
 
Merci


Message édité par gocho le 04-03-2010 à 17:17:01
mood
Publicité
Posté le 04-03-2010 à 14:07:39  profilanswer
 

n°1971188
rengzehn
Posté le 04-03-2010 à 14:45:38  profilanswer
 

Ca passe mais avec deux requetes, une j'ai po trouvé :)
 
La premiere est une requete analysé croisée.
 
La seconde exploite la premiere, contient un champ calculé et renvoie la bonne table.

n°1971207
lasnoufle
La seule et unique!
Posté le 04-03-2010 à 15:33:09  profilanswer
 

Les requetes access ca marche comment? Tu peux les faires en SQL?


---------------
C'était vraiment très intéressant.
n°1971210
rengzehn
Posté le 04-03-2010 à 15:35:50  profilanswer
 

strop bien tu fais tout à la souris pour ceux comme moi qui peuvent pas blairer le sql ^^, pour la création d'une requete, tu choisis un mode "cliquodrome" ou un mode sql tradi.


Message édité par rengzehn le 04-03-2010 à 15:36:32
n°1971227
gocho
Posté le 04-03-2010 à 16:39:04  profilanswer
 

j'avoue que j'ai un peu de mal avec le "cliquodrome", je passe souvent par le sql dès que ca devient un peu relou ^^
 
analyse croisée ? je vais voir comment ca marche :p
 
edit: ca donne quoi comme mot clé l'analyse croisée ?


Message édité par gocho le 04-03-2010 à 16:39:25
n°1971231
gocho
Posté le 04-03-2010 à 17:01:39  profilanswer
 

Ah oki, je pense commencer à comprendre.
 
J'ai donc fait une requete croisée avec :
num, date : en tete de ligne
code : en tete de colonne
code : valeur
 
du coup, j'obtiens ceci :  

Code :
  1. num      date               OAAAAA              PAAAAA
  2. 11111    01/01/2009            1             1
  3. 22222    01/02/2009                         1
  4. 33333    01/05/2009                         1
  5. 44444    01/03/2009            2             3
  6. 44444    01/04/2009            1             1


 
 
et après, avec la seconde, je n'ai plus qu'à recupérer toutes les lignes pour lesquelles PAAAAA est supérieure à OAAAA
 
Excellent, je connaissais vraiment pas du tout cette fonctionnalité !  
 
Merci :)
 
edit : et bien entendu penser dans le champ calculé à verifier que c'est > 0 ou null.
Vu que certaines valeurs ne sont pas renseignées, donc nulles ^^
 
Encore merci :)

Message cité 1 fois
Message édité par gocho le 04-03-2010 à 17:07:06
n°1971234
lasnoufle
La seule et unique!
Posté le 04-03-2010 à 17:07:22  profilanswer
 

Après P et O, c'est forcément AAAA ou ca peut etre autre chose?
Sinon en SQL Oracle, ca donnerait un truc comme ca (de tete hin, pas taper si ya des erreurs):
select p.num, p.date  
from (select num, date, substr(code,2) code from t where code like 'P%') p, (select num, date, substr(code,2) code from t where not(code like 'O%')) o
where p.num = o.num and p.date = o.date and p.code = o.code
 
C'est simplifiable si tu t'attends à avoir que des AAAA.


---------------
C'était vraiment très intéressant.
n°1971235
gocho
Posté le 04-03-2010 à 17:10:55  profilanswer
 

il n'y a pas que des AAA à priori ^^

n°1971238
rengzehn
Posté le 04-03-2010 à 17:17:41  profilanswer
 


gocho a écrit :

Ah oki, je pense commencer à comprendre.

 

J'ai donc fait une requete croisée avec :
num, date : en tete de ligne
code : en tete de colonne
code : valeur

du coup, j'obtiens ceci :

Code :
  1. num      date               OAAAAA              PAAAAA
  2. 11111    01/01/2009            1             1
  3. 22222    01/02/2009                         1
  4. 33333    01/05/2009                         1
  5. 44444    01/03/2009            2             3
  6. 44444    01/04/2009            1             1
 


et après, avec la seconde, je n'ai plus qu'à recupérer toutes les lignes pour lesquelles PAAAAA est supérieure à OAAAA

 

Excellent, je connaissais vraiment pas du tout cette fonctionnalité !

 

Merci :)

 

edit : et bien entendu penser dans le champ calculé à verifier que c'est > 0 ou null.
Vu que certaines valeurs ne sont pas renseignées, donc nulles ^^

 

Encore merci :)

 

yep exactement ça que j'avais fait :jap:


Message édité par rengzehn le 04-03-2010 à 17:17:58

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

  [Résolu] Problème de requête

 

Sujets relatifs
[RESOLU] Problème de requête et mysql_num_rows[RESOLU] [PHP/MYSQL] Problème d'exécution de requete imbriqué
[RÉSOLU]problème de Requète MySQL[Resolu][C#, ASP.net / access] problème requete update
[Résolu]Problème de requête SELECT[Résolu][Oracle] Problème requete
[RESOLU] problème d'heure dans requête mysql (heure d'hiver)[RESOLU] - Probleme requete SQL - RETURN
[Résolu] Javascript / AJAX - Problème de réponse de requete[resolu] Probleme de requete sur deux tables
Plus de sujets relatifs à : [Résolu] Problème de requête


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