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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Un ptit coup de pouce pour une requête SQL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Un ptit coup de pouce pour une requête SQL

n°1432924
PedroBD
Posté le 29-08-2006 à 10:27:52  profilanswer
 

Bonjour,
 
Je manipule une BD dans laquelle on stocke dans une table des produits et dans une autre les opérations effectuées sur ces produits. J'ai une table intermédaire Produit_Operation stockant les clés primaires des deux tables.
 
Sur 1 Produit on peut effectuer 0 à n opération, mais 1 opération correspond à 1 ou plusieurs produits (sur plusieurs produits il peut avoir été effectué la même opération). A la table opération est également liée une table lieu_opération qui trace le lieu dans lequel l'opération est effectuée. 1 lieu correspond nécessaire à 0 ou n opérations. Réciproquement, 1 opération est forcément effectuée dans un lieu.
 
Je suis en train de faire la requête pour mon formulaire de recherche...qui marche mais maintenant je dois rechercher le lieu de la dernière opération de chaque produit...et là je sèche pour la requête SQL.
 
Je sais que ma requête doit commencer comme ça:
 

Code :
  1. SELECT Produit_Operation.Id_Produit,Produit_Operation.Id_Operation,Operation.Id_Operation,Operation.Id_Lieu,Lieu_Operation.Id_Lieu,Lieu_Operation.Nom_Lieu FROM Produit_Operation
  2. INNER JOIN Operation
  3. ON Produit_Operation.Id_Operation=Operation.Id_Operation
  4. INNER JOIN Lieu_Operation
  5. ON Lieu_Operation.Id_Lieu=Operation.Id_Lieu


 
Et après, je mets quoi pour ne récupérer que le lieu de la dernière opération de chaque produit? :pfff:  
 
Je sais que ça doit être con, mais...je sèche! :ouch:  
 
Merci de votre aide. :D

mood
Publicité
Posté le 29-08-2006 à 10:27:52  profilanswer
 

n°1432927
orafrance
Posté le 29-08-2006 à 10:32:20  profilanswer
 

having Operation.Id = MAX(Operation.Id)

n°1432933
PedroBD
Posté le 29-08-2006 à 10:44:20  profilanswer
 

C'est tout? Et ça va marcher pour chaque produit?

n°1432983
PedroBD
Posté le 29-08-2006 à 11:40:24  profilanswer
 

orafrance a écrit :

having Operation.Id = MAX(Operation.Id)


 
Ca marche pas parce qu'en fait je fais pas exactment la requête que j'ai commencé plus haut. En fait, dans mon formulaire de recherche, je demande de saisir le nom d'un lieu d'une dernière opération effectuée.
 
Voici donc ma requête avec le HAVING...elle ne marche pas...si quelqu'un pouvait me dire pkoi. Merci d'avance!
 

Code :
  1. SELECT Produit_Operation.Id_Produit,Produit_Operation.Id_Operation,Operation.Id_Operation,Operation.Id_Lieu,Lieu_Operation.Id_Lieu,Lieu_Operation.Nom_Lieu FROM Produit_OperationINNER JOIN OperationON Produit_Operation.Id_Operation=Operation.Id_OperationINNER JOIN Lieu_OperationON Lieu_Operation.Id_Lieu=Operation.Id_Lieu
  2. WHERE Lieu_Operation.Nom_Lieu LIKE '%".$_POST['Lieuactop']."%'"
  3. HAVING Operation.Id_Operation=MAX(Operation.Id_Operation)


 
Bien sûr il s'agit d'une requête encapsulée dans du PHP, d'où le $_POST
 
Merci bcp du coup de main à ceux qui voudront bien m'aider!

n°1433136
dlaumor
Posté le 29-08-2006 à 15:57:53  profilanswer
 

pour faire un max tu doit faire un group by d'abord
essai un truc du genre avec une sous requete
 
Celle là fonctionne sous ORacle

Code :
  1. SELECT a.Id_Produit,
  2. a.Id_Operation,
  3. b.Id_Operation,
  4. b.Id_Lieu,
  5. c.Id_Lieu,
  6. c.Nom_Lieu
  7. FROM Produit_Operation a
  8. INNER JOIN Operation b
  9. ON a.Id_Operation=b.Id_Operation
  10. INNER JOIN Lieu_Operation c
  11. ON b.Id_Lieu=c.Id_Lieu
  12. where a.Id_Operation  = (select max(d.Id_Operation) from Produit_Operation d
  13. where a.Id_Produit = d.Id_Produit group by d.Id_Produit)


Message édité par dlaumor le 29-08-2006 à 15:59:57

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

  Un ptit coup de pouce pour une requête SQL

 

Sujets relatifs
ASP.NET Web part / SQL Server 2000Actionscript / SQL (et XML ?) pour un CD-rom ??
[Access]Problème de requete dans un formulairerequete sql décalé
requete accessEfficacité requête de mise à jour d'enregistrement
SQL Access Regrouper tous les champsRequête SQL sur des valeurs d'attributs d'un objet
Requête sql sous php 
Plus de sujets relatifs à : Un ptit coup de pouce pour une requête SQL


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