Bonjour,
Alors voilà, j'ai deux requêtes d'un côté et deux requêtes de l'autre et j'aimerai bien n'en faire qu'une...
Voici le premier duo qui me permet d'afficher à la fois le materiel dont l'id est celui qui a été entré et à la fois les autres matériels qui sont dans la même famille que le matériel dont le numéro a été entré.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT IdCpt,NomMat,IdFam,Multiple FROM materiel WHERE IdCpt = ? UNION SELECT IdCpt,NomMat,IdFam,Multiple FROM materiel WHERE IdFam = ?
Le second qui me permet d'afficher les mêmes éléments mais avec des conditions de date.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT DISTINCT t.id_materiel,m.IdCpt,m.NomMat,m.IdFam,m.Multiple FROM table_resa t INNER JOIN materiel m ON t.id_materiel = m.IdCpt WHERE t.id_materiel = :idmat AND t.id_materiel NOT IN (SELECT id_materiel FROM table_resa WHERE (:date_demprunt BETWEEN date_d AND date_r) OR (:date_deretour BETWEEN date_d AND date_r) OR (date_d BETWEEN :date_demprunt AND :date_deretour) OR (date_r BETWEEN :date_demprunt AND :date_deretour)) UNION SELECT DISTINCT t.id_materiel,m.IdCpt,m.NomMat,m.IdFam,m.Multiple FROM table_resa t INNER JOIN materiel m ON t.id_materiel = m.IdCpt WHERE m.IdFam = :idfam AND t.id_materiel NOT IN (SELECT id_materiel FROM table_resa WHERE (:date_demprunt BETWEEN date_d AND date_r) OR (:date_deretour BETWEEN date_d AND date_r) OR (date_d BETWEEN :date_demprunt AND :date_deretour) OR (date_r BETWEEN :date_demprunt AND :date_deretour)
Tous les matériels sont entrés dans la table "materiel".
En revanche, seuls les matériels qui ont déjà eu des dates sont dans la table "table_resa" (et dans la table materiel du coup)
Mais du coup, je voudrais une requête qui me permette d'afficher tous les matériels même ceux qui ne sont pas dans table resa.
Bref, j'ai tenté plusieurs choses mais pour l'instant je n'y arrive pas...
Quelqu'un peut m'aider ?
Merci
Partager