Requête ou code ? pour confirmés

PP_RhuM{49°] Messages postés 6 Statut Membre -  
PP_RhuM{49°] Messages postés 6 Statut Membre -
Bonjour à tous,

Je travaille sur MS SQL 2008 et ma solution est en ASP / C#.

J'ai une requête à faire bien compliquée et je ne sais pas si je dois le faire par code (dans l'idéal non).

Je viens donc prendre conseille auprès de vous.

J'ai une table qui contient des contrats, "contracts" :
- contract_id (int)
- user_id (int)
- start_date (datetime)
- end_date (datetime)

Une qui contient des modèles de rapports que les utilisateurs possédant un contrat doivent remplir, "report_models" :
- report_model_id (int)
- description (char)
- day_to_report (int)
- is_repeated (bool)

Et enfin, une table qui contient les rapports envoyés, "reports" :
- report_id (int)
- contract_id (int)
- report_model_id (int)
- send_date (date)
- comment (char)

Mes tables contrats et rapports sont assez explicites et je vous ai épargné les autres détails qui ne servirent pas dans ce cas précis.

Pour les modèles de rapport :
- le day_to_report, exprimé en jours, sert à savoir au bout de combien de temps le rapport doit être rendu
- le is_repeated permet de savoir si l'action doit être répétée.

Par exemple :

- Si day_to_report = 15 et is_repeated = false, chaque utilisateur possédant un contrat doit rendre ce rapport au minimum 15 jours après sa date de début.

- Si day_to_report = 15 et is_repeated = true, chaque utilisateur possédant un contrat doit rendre ce rapport tous les 15 jours à partir du début du contrat (et jusqu'à sa fin).
Ce qui fait qu'un utilisateur n'ayant pas rendu de rapport au bout de 45 jours de contrat aura 2 rapports à remplir.

J'en viens à ma question (espérant que j'ai été assez clair sur le fonctionnement) :

Je souhaite récupérer une liste avec tous les rapports non rendus qui m'afficherai :
- user_id
- report_model_id
- contract_id
- date_à_laquelle_le_rapport_aurait_du_etre_rendu

Alors, SQL ou code ? Bon courage, mon problème n'est pas si simple, je patauge bien depuis un moment, et merci beaucoup pour vos réponses.

A voir également:

1 réponse

PP_RhuM{49°] Messages postés 6 Statut Membre
 
petit up ;)
0