|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre éprouvé
![]() Inscription : janvier 2009 Messages : 301 ![]() |
Bonjour,
J'ai créé la requête, ci-après, pour être utilisée avec Firebird version 2.1.4. L'objectif est de présenter en colonne l'échéance des factures. Cette affichage doit se faire pour 8 décades. La difficulté principale est de traiter les décades de fin mois qui peuvent être 31/01, 29/02 et 31/03. Pour cela, je fais l'ajustement dans l'applicatif et transmets par paramètres les valeurs à la requête. Code :
Question Mon interrogation est comment transformer cette requête dans une VUE, car il n'est pas possible de passer les paramètres fin de décade. La mise en œuvre d'une procédure stockée serait-elle plus appropriée ? Il n'est pas interdit de modifier ma requête pour lui permettre de la transformer dans une vue. Je remercie d'avance tous ceux qui pourront m'aider à résoudre ma difficulté. Editer à 9 h 22 Après réflexion, la solution passe peut être par la création d'une table qui enregistrerait les dates de fin de décade. Merci pour les conseils que vous pouvez me donner vers cette piste ou tout autre. |
||
|
|
00
|
|
|
#2 |
|
Membre éprouvé
![]() Inscription : janvier 2009 Messages : 301 ![]() |
Bonjour,
@Cinephil Il me semble dommage d'avoir déplacé ma discussion de la section SGBD -SQL vers Firebird. Ma difficulté n'est pas créer une vue, mais de voir comment rédiger la requête autrement pour qu'elle puisse être transformée en vue. Tout cela en SQL standard. La précision d'utilisation de Firebird était simplement pour éviter d'obtenir une réponse avec des instructions qui ne sont pas présentent dans le serveur employé. Exemple 'decade' qui existe dans PostgreSQL, mais pas dans Firebird Il serait bien de la replacer dans la section SGBD - SQL Pour compléter ma demande, est-il possible de présenter la requête d'une manière différente pour qu'elle puisse être transformée en une vue D'avance merci |
|
|
00
|
|
|
#3 | |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
decade dans postgresql c'est
Citation:
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : janvier 2009 Messages : 301 ![]() |
Bonjour,
@makowski Merci de vous intéresser à ma demande. Effectivement, la notion de décade peut avoir plusieurs interprétations. Pour moi, il s'agit de la décade habituellement utilisée dans le monde de la finance. Dans cette approche, chaque mois comporte 3 décades qui vont du 1 au 10 du mois (1ère décade), du 11 au 20 du mois (2ème décade) et du 21 à la fin du mois (3ème décade). Or, cette troisième décade est variable suivant le mois. En janvier 2012, elle aura 11 jours, en février 2012, elle sera de 9 jours alors qu'elle était de 8 jours pour février 2011. Je n'ai pas réussi à trouver une méthode pour assurer un découpage conforme à la décade financière. C'est pour cette raison que j'ai écrit la requête présentée dans mon précédent message. Elle répond à mes attentes, mais j'aurai préféré, pour des raisons internes à l'entreprise, pourvoir transformer cette requête en vue. Maintenant, si cela n'est pas possible, nous resterons en l'état. Je peux également envisager une procédure stockée. Mais je ne mesure pas les avantages et inconvénients par à une vue. J'aimerais bien obtenir un ou deux avis pour me fixer dans mon choix définitif. Peut-être que je me complique la vie pour rien. D'avance merci à ceux qui sont en mesure de m'aider. |
|
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
pour avoir la decade d'une date (numéroté de 1 à 3) :
Code :
SELECT MINVALUE((((EXTRACT(DAY FROM DATE '31.01.2012')-1)/10)+1),3) FROM RDB$DATABASE Code :
SELECT MINVALUE((((EXTRACT(DAY FROM DATE '31.12.2012')-1)/10)+1),3)+(3*(EXTRACT(MONTH FROM DATE '31.12.2012')-1)) FROM RDB$DATABASE du coup, tu dois pouvoir réécrire ta requête
__________________
Philippe Makowski IBPhoenix - Firebird Membre de l'April |
|
00
|
|
|
#6 |
|
Membre éprouvé
![]() Inscription : janvier 2009 Messages : 301 ![]() |
Bonjour,
@makowski Je te remercie pour les modèles qui vont me permettre de transformer mes dates en décade. Je vais revoir ma requête en conséquence, je présenterai le résultat après réalisation. Hier matin, en me rasant "Certains pensent à devenir président de la république d'autres réfléchissent comme modifier une requête SQL. A chacun son centre d'intérêt", je m'étais dit qu'il fallait passer EXTRACT. Étant absent, je n'avais rien vérifier. Hier soir, j'ai découvert ta réponse. Encore merci |
|
|
00
|
|
|
#7 |
|
Membre éprouvé
![]() Inscription : janvier 2009 Messages : 301 ![]() |
Bonjour,
Je considère ce problème comme résolu pour l'instant. J'ai actuellement une requête qui fonctionne parfaitement. Je n'ai donc pas fait de transformation en vue. Je reprendrai ce point plus tard, lorsque le développement en cours sera terminé. Si j'ai besoin d'aide je reviendrai Merci à tous ceux qui m'ont aidé. A+ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com