|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 16 ![]() |
J'ai un petit soucis, voici le MPD que j'ai joint au message,
je voulais faire ressortir la liste des locataire qui n'ont pas fait l'objet de versement, pour effectuer un versement le locataire est enregistré dans la table verser, puis l'Id du MOIS aussi est associé, donc seuls les locataires ayant fait l'objet de verser peuvent se trouver dans cette table VERSER. Aidez moi |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Laure Consultante en Business Intelligence Inscription : avril 2007 Messages : 983 ![]() |
Bonjour,
Sous quel SGBD travailles-tu ? Pourrais-tu nous donner ton ébauche de requête pour que nous puissions t'aider ?
__________________
~ Lola ~ Ne pas oublier : et aussi :
|
|
|
00
|
|
|
#3 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Bonjour,
Au vu du mpd je penses qu'il va vous manquer une table de calendrier qui vous permettra de lister facillement tous les couple année/mois pour une location. Une fois que vous aurez ça il suffira de tester la non existance (not exists) entre la table des versements et la table de location jointe à votre calendrier. edit : oui tout à fait asmduty, manque plus qu'a savoir s'il utilise MySql ou pas... mais vu le mpd il me semble que c'est du MySql Workbench => pas de recursion, ni fonction de fenetrage |
|
|
00
|
|
|
#4 |
|
Membre émérite
![]() Tony Développeur .NET Inscription : novembre 2010 Messages : 570 ![]() |
Sachant qu'il y a une date de début et de fin de location logiquement pas besoin de nouvelle table
Il faudrait chercher tous les couples mois/année non présents depuis le premier mois/année de location et le mois/année actuel avec le "not exists" comme l'a proposé punkoff
__________________
Le Porc est un loup pour le Porc. |
|
|
00
|
|
|
#5 |
![]() ![]() |
Moi je comprends ça comme la liste des locataires n'ayant jamais fait de versement. Il suffirait donc de chercher les locataires qui n'existent pas dans la table verser.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 16 ![]() |
Bonjour,
Au fait j'utilise la base de Données Mysql 5 SVP si je comprend bien l'ébauche de requette dont vous me demander c'est un debut de ce que j'ai dejà commencer, si c'est cela ce n'est qu'un brullons qui n'a pas de sens. En plus j'ai dejà une table MOIS et au niveau des enregistrements dans la table VESER, cette dernière prend l'identité du locataire (idlocataire) l'identité de la table MOIS (idmois) et en plus de cela l'utilisateur saisie l'année dans la table VERSER. Donc je voulais avoir comme resultat, la liste des locataires qui n'ont jamais fait de versement et ceux qui ont fait aussi des veserment. Exemple nous somme en janvier, si nous prenons un intervalle de date qui couvre la periode de JANVIER à MARS ont doit pouvoir voir ceux qui n'ont jamais payer et ceux qui ont seulement payé pour le mois de janvier ou février et cette requette doit me sortir aussi bien les noms, et les mois impayés. Merci |
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
bonjour,
Je persisterai donc sur mon idée de base à savoir qu'il va vous manquer une table de type calendrier : calendrier (annee, mois). Ceci permettra de connaitre justement vos trous dans les versements en recoupant avec la plage de location. Donc creuser dans ce sens, et présentez des ébauches de requêtes. |
|
|
00
|
|
|
#8 | ||
![]() ![]() |
Essaie cette requête :
Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 16 ![]() |
Le locations ici ne font pas l'objet de plage, un locataire qui loue une chambre doit payer regulièrement ses loyer aufur et à mesure que le mois finisse, dont ici il n'est pas question que le locataire a fait une location sur 12 MOIS c'est de Janvier 2012 à Décembre 2012, non il fait la locaton pour tout le temps que le propriètaire accepte toujours de mettre en location ses chambres. Donc c'es sur cet aspect que les verserments se font à chaque fin du mois en donnant les informations sur le locataire, le mois de location et on saisie l'année.
Merci |
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 16 ![]() |
Code :
|
||
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
J'ai relu 3 fois et n'ai toujours pas compris votre explication.
Vu que vous avez une date de début de location et une date de fin de location vous avez bien une plage durant laquelle votre location est active, non ? Bref, sinon votre résultat vous le chercher : - pour le mois en cours uniquement ? - pour l'année en cours (jusqu'au mois courrant) ? - tout l'historique ? |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 16 ![]() |
Donc si j'enlève, le resultat me donne plus la liste de ceux qui fait un versement dans l'année 2012 dont le mois se situ entre 1 et 3.
Je crois ma solution serais le contraire du resultat que donne cette requête. Merci pour votre aide, je crois que nous y arriverons à trouver la meilleur requête. Merci |
|
|
00
|
|
|
#13 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 16 ![]() |
ce que signifie date debut et fin loacation dans la Table louer
Ces deux dates sont la periode que couvre les Avances juste a la location, donc après versement de cette avance le locataire à l'obligation de commenecer par payé à chaque fin du mois et c'est cette somme qui est enregistrer dans la table VERSER. et c'est sur cette table qu'on doit chercher ceux qui n'ont pas fait de versement. Merci |
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Et quand une location n'est plus active que se passe-t-il ?
Vous effacez physiquement la ligne concernée de la table louer ? |
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 16 ![]() |
Je mets à jour ces lignes qui ont été occuper par un locataire, dans un champs qui prendra comme information expiré, pour signifier que la location est expiré.
Merci |
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Et votre requête devra pouvoir aussi retourner les résutlats sur plusieurs années ? (par exemple de septembre 2011 à Mars 2012)
|
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 16 ![]() |
Non seulement sur periode couvrant une année seulement.
Merci. |
|
|
00
|
|
|
#18 | ||
![]() ![]() |
Ma requête ne fonctionnait effectivement pas.
Pour avoir les locataires qui n'ont pas versé le mois de janvier, tu peux faire cette requête : Code :
Je n'ai pour le moment pas trouvé de solution à ton problème en apparence simple.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#19 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
bonjour,
il suffit d'adapter la requete a cinephil, en faisant un cross join entre la table louer et les mois, apres en gardant la même structure ca fonctionne edit : Code :
|
||
|
|
00
|
|
|
#20 |
|
Invité de passage
![]() Inscription : septembre 2008 Messages : 16 ![]() |
Ok, je Vais essai et je vous donnerai la suite, merci pour tout votre attention que vous avez pour moi.
Kokey |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com