Bonjour et merci à tous ceux qui s'inquiètent de mon problème. Mon problème se résume ainsi :
* A et B représentent les billes
*le parc 1 et le parc 6 représentent les lieux de stockage
* à la date du 12/12/2023 les grumes sont chargées sur un camion au parc 1 pour une destination au parc 6
* le 14/12/2023 ces billes arrivent dans le parc 6.
*ces balles sont rechargées sur un camion (Lettre_Voiture) au parc 6 le 18/12/2023 pour une destination en parc 1.
* ils arriveront au parc 1 le 20/12/2023
Comme tableau nous avons :
-/ Lettre_voiture
-/ Lettre_voiture_ligne
-/ Bille
-/ préparation_pied
Bille = Preparation_pied car idprepration_pied est dans Bille
Attention :
- donc sur un camion il y a la date de départ et la date d'arrivée. il y a aussi le parc de départ et le parc de destination
- c'est le bordereau camion que l'on appelle Letter_Voiture et les lignes qui se trouvent sur ce bordereau s'appellent letter_Voiture_ligne. mais chaque facture déposée sur ce bordereau est liée à la letter_voiture_ligne
- il nous faut maintenant connaître le nombre de grumes qu'il y a dans le parc 1 à la date du 20/12/2023 en tenant compte du mouvement qu'ont fait ces grumes à travers les camions
- également à cette même date (20/12/2023) il faut savoir ce que nous avons sur le parc 6
- il faut tenir compte du fait qu'à partir d'aujourd'hui (20/12/2023) il y a des billes qui sont arrivées dans le parc 1 et aussi il peut y avoir des billes qui pourront quitter le parc 1 le même jour.
- Edité par AristideMengue 3 janvier 2024 à 16:27:46
Vous donnez un énoncé, mais vous n'indiquez pas le problème rencontré en exécutant votre requête (message d'erreur, résultat non attendu, ...)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Merci @fred1599 dans cette requête le problème est qu'il fonctionne pour le parc 6 à la date du 20/12/2023 mais pas pour le parc 1. hors le resultat attendu est que sur le parc 6 à la date du 20/12/2023 on ne devrait avoir aucune bille de bois ce qui est normal car les billes ont quitté ce parc à la date du 18/12/2023. Par contre, sur le parc 1 à la date du 20/12/2023 on devrait avoir ces deux billes car elles sont arrivées sur ce parc le 20/12/2023. donc en gros dans cette requête seul les parcs qui changent.
À mon sens, c'est un problème de condition, si je modifie la commande WHERE de cette manière
WHERE
(LV.datearriverlv <= '2023-12-20' AND LV.lieuxarrive = 6)
OR
(LV.datearriverlv = '2023-12-20' AND LV.lieuxarrive = 1)
AND pp.idpreparation not in (select idbille from lettre_voiture_ligne_grume LVR join lettre_voiture_grume LV on LV.idlv = LVR.idlv where LV.lieuxdepart = 6 and LV.datelv <= '2023-12-20')
À tester !
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
j'ai essayé cette requête elle marche mais seulement si je mets la date 2023-12-21 pour le parc 1 ça ne fonctionne pas hors les billes étant arrivé sur le parc 1 le 2023-12-20 n'ont pas encore effectué d'autre mouvement donc on devrait les trouver sur ce parc le 21, 22, 23 etc...
SELECT distinct b.idpreparation as idb, es.description_essence, pp.codebar_grume, pp.num_colis, b.affectation_bil,l.description_licence, l.idlicence,pp.longueur_prepa as longu
, pp.diam_gb_prepa as GB, pp.diam_pb_prepa as PB, pp.volume_prepa as volume, '','Arrivée par LV' as etat,LV.datelv, LV.datearriverlv as datess, LV.idlv FROM lettre_voiture_ligne_grume LVR
join lettre_voiture_grume LV on LV.idlv = LVR.idlv JOIN billage b ON b.idpreparation = LVR.idbille
JOIN preparation_pied pp on pp.idpreparation = b.idpreparation
LEFT JOIN essence es ON es.idessence = pp.idessence
LEFT JOIN licence l on l.idlicence = pp.idlicence
WHERE LV.lieuxarrive = 1 and
LV.datelv <= '2023-12-20'
and (LV.datearriverlv IS NULL OR LV.datearriverlv >= '2023-12-20')
mais ça ne marche pas.
qu'est-ce qui pourrait manqué ?
merci
- Edité par AristideMengue 3 janvier 2024 à 16:25:30
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)