Précédent   Forum des professionnels en informatique > Bases de données > Firebird
Firebird Forum d'entraide sur le SGBD Firebird. Avant de poster -> F.A.Q Firebird, Tutoriels
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/07/2007, 14h29   #1
Membre du Club
 
Inscription : octobre 2004
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 340
Points : 53
Points : 53
Par défaut Calcul sur date

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
nah_wah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 15h44   #2
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
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
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 16h17   #3
Membre du Club
 
Inscription : octobre 2004
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 340
Points : 53
Points : 53
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 :
Citation:
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
nah_wah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 17h00   #4
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
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
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2007, 17h48   #5
Membre du Club
 
Inscription : octobre 2004
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 340
Points : 53
Points : 53
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
nah_wah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 14h48   #6
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 17
Points : 16
Points : 16
Citation:
Envoyé par makowski
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

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
pasnox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h10   #7
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
il faut d'abord pour chaque base ou cela est nécessaire déclarer la fonction addyear
Code :
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
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2007, 15h21   #8
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 17
Points : 16
Points : 16
Merci, ca marche impec maintenant

P@sNox,
pasnox est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/08/2007, 11h06   #9
Membre actif
 
Avatar de adaneels
 
Homme Arnaud DANEELS
Chef de projet MOA
Inscription : août 2006
Messages : 233
Détails du profil
Informations personnelles :
Nom : Homme Arnaud DANEELS
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Chef de projet MOA

Informations forums :
Inscription : août 2006
Messages : 233
Points : 161
Points : 161
Envoyer un message via ICQ à adaneels Envoyer un message via MSN à adaneels Envoyer un message via Yahoo à adaneels Envoyer un message via Skype™ à adaneels
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 :
Code :
1
2
3
SELECT *
FROM ABONNES
WHERE datediff(day,DATE_INSCRIPTION, current_date) < 5
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").
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
adaneels est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h59.


 
 
 
 
Partenaires

Hébergement Web