Comparaison de deux lignes en SQL
jlmen
-
fiu -
fiu -
Bonjour,
Je dois réaliser la manipulation suivante en SQL et je ne sais pas comment la faire. J'ai une table du type :
date identifiant taux
jan2010 contrat1 5%
fév2010 contrat1 5%
ma2010 contrat1 5%
jan2010 contrat2 4.50%
fév2010 contrat2 4.50%
ma2010 contrat2 3.75%
Je dois comparer les éventuelles variations du taux pour chaque contrat dans le temps. Ainsi, pour le contrat2 je veux faire ressortir que le taux a changé en mars 2010. Comment faire pour comparer des lignes en SQL ?
Merci d'avance pour vos réponses.
Je dois réaliser la manipulation suivante en SQL et je ne sais pas comment la faire. J'ai une table du type :
date identifiant taux
jan2010 contrat1 5%
fév2010 contrat1 5%
ma2010 contrat1 5%
jan2010 contrat2 4.50%
fév2010 contrat2 4.50%
ma2010 contrat2 3.75%
Je dois comparer les éventuelles variations du taux pour chaque contrat dans le temps. Ainsi, pour le contrat2 je veux faire ressortir que le taux a changé en mars 2010. Comment faire pour comparer des lignes en SQL ?
Merci d'avance pour vos réponses.
A voir également:
- Comparer deux enregistrements sql
- Deux ecran pc - Guide
- Comment faire deux colonnes sur word - Guide
- Nombre de jours entre deux dates excel - Guide
- Supprimer une conversation messenger pour les deux personnes ✓ - Forum Facebook
- I deux point - Forum Windows
1 réponse
Salut,
En fait, ce genre de comparaison se fait en combinant la table avec elle-même : je prends ma liste d'historique des taux par contrat et je lui juxtapose ma liste d'historique des taux par contrat et j'essaie de ne comparer des taux entre eux que lorsqu'il s'agit d'un même contrat et de 2 périodes qui se suivent.
Si dans ta base tu peux facilement comparer deux dates, tu peux alors essayer
select t1.identifiant, t1.date, t2.date, t1.taux, t2.taux
from historique_taux_contrat t1, historique_taux_contrat t2
where t1.identifiant = t2.identifiant
and t1.date = t2.date moins un mois -- ta comparaison de 2 dates
and t1.taux <> t2.taux
order by 1, 2
En fait, ce genre de comparaison se fait en combinant la table avec elle-même : je prends ma liste d'historique des taux par contrat et je lui juxtapose ma liste d'historique des taux par contrat et j'essaie de ne comparer des taux entre eux que lorsqu'il s'agit d'un même contrat et de 2 périodes qui se suivent.
Si dans ta base tu peux facilement comparer deux dates, tu peux alors essayer
select t1.identifiant, t1.date, t2.date, t1.taux, t2.taux
from historique_taux_contrat t1, historique_taux_contrat t2
where t1.identifiant = t2.identifiant
and t1.date = t2.date moins un mois -- ta comparaison de 2 dates
and t1.taux <> t2.taux
order by 1, 2