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
Ne faudrait-il pas une table Transit qui contiendrait les billes (ou grumes) en transit entre 2 parcs avec les dates de départ et d'arrivée ?
effectivement j'ai une table mouvement qui prend le parc de départ, le parc d'arrivée, la date départ et la date d'arrivée
l'effort dépend de la volonté de chacun de nous
Problème de requete
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
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)