Salut tout le monde;
je voudrais sommer les factures qui ont plus 1an,celle de 9 mois ,celle 3 mois et celle 1 mois par rapport a une date precise;
comment puis je faire SVp
Merci
Salut tout le monde;
je voudrais sommer les factures qui ont plus 1an,celle de 9 mois ,celle 3 mois et celle 1 mois par rapport a une date precise;
comment puis je faire SVp
Merci
avec les fonctions addMonth et addYear dans fbudf pour Firebird avant la 2.1
et avec les fonctions intégrées DATEADD et DATEDIFF dans Firebird 2.1
Venez au Rendez-Vous Firebird le 12 juillet à Amiens :
http://www.developpez.net/forums/sho...d.php?t=325113
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
j'utilise interbase 6.0 et laplupart de mes clients l'utilise et je ne voudrais pas migrer vers firebird cause des messages d'ambiguité .
j ai fait cette requete :
select compte,
(select (sum(debit)-sum(credit)) from mouv M1 where
(M1.compte=M.compte)and
(datemvt+30 > '12/31/2006')) Un_mois
,(select (sum(debit)-sum(credit)) from mouv M1 where
(M1.compte=M.compte)and
(datemvt+90 > '12/31/2006')) Trois_mois
,(select (sum(debit)-sum(credit)) from mouv M1 where
(M1.compte=M.compte)and
(datemvt+180 > '12/31/2006')) Six_mois
,(select (sum(debit)-sum(credit)) from mouv M1 where
(M1.compte=M.compte)and
(datemvt+270 > '12/31/2006')) Neuf_mois,
(select (sum(debit)-sum(credit)) from mouv M1 where
(M1.compte=M.compte)and
(datemvt+365 > '12/31/2006')) Un_An
from mouv M
where
(compte between '0' and '9999999999')
and ((categorie='C')or(categorie='F'))
and (datemvt between '01/01/2006' and '12/31/2006')
and (M.lettrage is null)
group by compte
order by compte
et bien tu as tord
si tu veux continuer à utiliser un produit buggué et qui te permet de faire des requêtes avec des résultats non prédictibles et donc potentiellement faux, c'est ton problème
ceci dit ces udf devraient passer avec IB6
mais IB6, moi je ne veux plus en entendre parler
et j'ajouterai que ta requête ne tient pas compte des mois de 31 et 28 et 29 jours et des années bissextiles .....
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
moi aussi j'aurais preferer ne plus entendre parler d ib6 j'en ai bien galerer avec lui mais le comble c 'est que le programme a plus de 176 procedure et je te dis pas .
mais je crois que je vais m y mettre
Merci du conseil
Envoyé par makowski
Je possede firebird 1.5 et ni addYear ni DATEADD ne sont apparemment disonible.
Comment ajouter ar exemple un an a un champs de ma requete pour une clause between ?!
Exemple : AND DATE_INTERVENTION BETWEEN CON_DATE_CONTRAT AND ADDYEAR( CON_DATE_CONTRAT )
Merci, P@sNox
il faut d'abord pour chaque base ou cela est nécessaire déclarer la fonction addyear
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 declare external function addYear timestamp, int returns timestamp entry_point 'addYear' module_name 'fbudf';
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
Nota béné si un visiteur passe comme moi sur ce thread par hasard :
Maintenant, avec la version 2.1 de Firebird, il est possible d'avoir la liste des enregistrement des N des jours (mois, années, etc.) en faisant ceci :
Cette requête sort tous les enregistrements de la table ABONNES qui se sont abonnés dans les 5 derniers jours (ou, en traduction litérale : "dont la différence entre la date d'inscription et la date actuelle est inférieure à 5 jours").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select * from ABONNES where datediff(day,DATE_INSCRIPTION, current_date) < 5
DATE_INSCRIPTION étant un champ date.
Pour plus d'infos sur les manipulations de dates, je vous conseille d'aller sur :
- les petits papiers SQLPro
- MSDN : fonction datediff en Transact-SQL (pour SQL Server mais peut aider sur la syntaxe)
Ca fait plus d'une heure que je cherche la réponse, j'espère que ça fera gagner du temps à d'autres
Arnaud DANEELS
--
Arnaud DANEELS
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager