Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 Re : Général » Jointure avec date la plus petite et la plus proche » 22/10/2013 14:01:44
Je n'ai pas bien expliqué mes tables pardon.
dans la table2, le taux est une valeur prise à l'instant v_timestamp.
Il n'y a pas de calcul.Par exemple, j'ajoute la colonne prix à table1.
Ensuite je voulais rapproché les 2 tables de telle sorte que que chaque ligne de la table 1 puisse avoir l'information de taux la plus récente.
#2 Re : Général » Jointure avec date la plus petite et la plus proche » 22/10/2013 10:51:32
Bonjour,
Merci pour ton aide guk92.
J'ai réussi à obtenir ce que je souhaitais avec cette requête :
SELECT DISTINCT ON (table1.id)
*
FROM
table1
LEFT JOIN table2 ON (table1.name = table2.name AND table2.v_timestamp <= table1.t_timestamp)
ORDER BY
table1.id ASC,
table2.v_timestamp DESC
#3 Re : Général » Jointure avec date la plus petite et la plus proche » 21/10/2013 14:24:30
C'est la le problème, c'est que je ne souhaite pas définir le combien d'unité.
Dans mon raisonnement, je souhaite sélectionner la ligne avec le le plus grand v_timestamp disponible et restant inférieur ou égal au t_timestamp avec des "name" identiques.
Pour le moment le mieux que j'ai pu faire c'est avec cette requête :
SELECT *
FROM table1, table2
WHERE table1."name" = table2."name"
AND table2."V_Timestamp" <= table1."T_Timestamp"
ORDER BY table1.id ASC, table2."V_Timestamp" DESC
Avec cette requête, j'obtiens presque le résultat souhaité mais j'ai encore des lignes en double :
id | name | t_timestamp | id | name | taux | v_timestamp
--------|------------|----------------------|---------|-------------|-------------|---------------------
1 | Nom1 | 2013-10-21 10:23 | 2 | Nom1 | 1.93 | 2013-10-21 09:33
1 | Nom1 | 2013-10-21 10:23 | 1 | Nom1 | 2.01 | 2013-10-20 10:24
2 | Nom4 | 2013-10-21 10:25 | 4 | Nom4 | 3.50 | 2013-10-21 10:25
3 | Nom2 | 2013-10-21 10:27 | 3 | Nom2 | 0.05 | 2013-10-19 10:00
4 | Nom4 | 2013-10-21 10:28 | 4 | Nom4 | 3.50 | 2013-10-21 10:25
#4 Général » Jointure avec date la plus petite et la plus proche » 21/10/2013 10:35:06
- playmobil77d
- Réponses : 6
Bonjour,
J'ai les 2 tables suivantes :
table1: table2:
id | name | t_timestamp id | name | taux | v_timestamp
--------|------------|---------------------- ---------|-------------|-------------|---------------------
1 | Nom1 | 2013-10-21 10:23 1 | Nom1 | 2.01 | 2013-10-20 10:24
2 | Nom4 | 2013-10-21 10:25 2 | Nom1 | 1.93 | 2013-10-21 09:33
3 | Nom2 | 2013-10-21 10:27 3 | Nom2 | 0.05 | 2013-10-19 10:00
4 | Nom4 | 2013-10-21 10:28 4 | Nom4 | 3.50 | 2013-10-21 10:25
J'aimerai faire une jointure entre ces 2 tables avec les conditions suivantes :
table1.name = table2.name (ça c'est bon)
et table2.v_timestamp soit la date la plus proche inférieur par rapport à table1.t_timestamp.
Dans l'idée voilà ce que je souhaiterais avoir comme table :
id | name | t_timestamp | id | name | taux | v_timestamp
--------|------------|----------------------|---------|-------------|-------------|---------------------
1 | Nom1 | 2013-10-21 10:23 | 2 | Nom1 | 1.93 | 2013-10-21 09:33
2 | Nom4 | 2013-10-21 10:25 | 4 | Nom4 | 3.50 | 2013-10-21 10:25
3 | Nom2 | 2013-10-21 10:27 | 3 | Nom2 | 0.05 | 2013-10-19 10:00
4 | Nom4 | 2013-10-21 10:28 | 4 | Nom4 | 3.50 | 2013-10-21 10:25
Auriez-vous une idée de comment faire ce genre de jointure ?
Merci d'avance pour votre aide.
Pages : 1