Soustraction entre deux valeurs

Fermé
mikesunshine59 Messages postés 73 Date d'inscription lundi 22 janvier 2018 Statut Membre Dernière intervention 24 février 2018 - Modifié le 7 févr. 2018 à 22:04
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 8 févr. 2018 à 20:56
Bonjour,

J'ai une table avec les informations ci-dessous :

Date, ID, Price
07/02/2018, ORANGE, 54
08/02/2018, ORANGE, 53
09/02/2018, ORANGE, 55

07/02/2018, POMME, 65
08/02/2018, POMME, 45
09/02/2018, POMME, 67

07/02/2018, ANANAS, 54
08/02/2018, ANANAS, 56
09/02/2018, ANANAS, 51

Je voudrais obtenir le résultat ci-dessous :

Date, ID, Price, Différence
07/02/2018, ORANGE, 54, 54 (Différence avec la valeur J-1)
08/02/2018, ORANGE, 53, -1 (Différence avec la valeur J-1)
09/02/2018, ORANGE, 55, 2 (Différence avec la valeur J-1)

07/02/2018, POMME, 65,65 (Différence avec la valeur J-1)
08/02/2018, POMME, 45, -20 (Différence avec la valeur J-1)
09/02/2018, POMME, 67,22 (Différence avec la valeur J-1)

07/02/2018, ANANAS, 54,54 (Différence avec la valeur J-1)
08/02/2018, ANANAS, 56,2 (Différence avec la valeur J-1)
09/02/2018, ANANAS, 51,-5 (Différence avec la valeur J-1)

Pouvez-vous m'aider svp ?

1 réponse

yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
7 févr. 2018 à 22:19
bonsoir, peut-être à peu près:
select  t1.Date, t1.ID, t1.Price, t1.Price-t2.Price as diff
from tatable as t1, tatable as t2
where t1.ID=t2.ID and t1.Date = t2.Date+1

 
0
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
7 févr. 2018 à 22:23
ou bien:
select  t1.Date, t1.ID, t1.Price, t1.Price-ifnull(t2.Price, 0) as diff
from tatable as t1 left join tatable as t2
on t1.ID=t2.ID and t1.Date = t2.Date+1
0
mikesunshine59 Messages postés 73 Date d'inscription lundi 22 janvier 2018 Statut Membre Dernière intervention 24 février 2018 > yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024
7 févr. 2018 à 22:54
Merci :)

Cela me donne 0 résultat
0
mikesunshine59 Messages postés 73 Date d'inscription lundi 22 janvier 2018 Statut Membre Dernière intervention 24 février 2018
Modifié le 7 févr. 2018 à 23:04
Merci :)

Cela me donne des résultats mais les soustractions me donnent un résultat faux.

En fait les dates sont dans ce format :
2018-02-07 21:40:05
2018-02-07 21:45:11
2018-02-07 21:50:06

C'est sympa de m'aider à apprendre et comprendre.
0
mikesunshine59 Messages postés 73 Date d'inscription lundi 22 janvier 2018 Statut Membre Dernière intervention 24 février 2018
7 févr. 2018 à 23:27
J'ai essayé ca mais ca ne fonctionne pas comme je veux. Même s'il y a de l'idée.


SELECT t1.Date, t1.ID, t1.Price, t1.Price- t2.Price
FROM matable as t1, matable as t2
GROUP BY ID
ORDER BY ID
0
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > mikesunshine59 Messages postés 73 Date d'inscription lundi 22 janvier 2018 Statut Membre Dernière intervention 24 février 2018
Modifié le 8 févr. 2018 à 09:52
select  t1.Date, t1.ID, t1.Price, t1.Price-ifnull(t2.Price, 0) as diff, t2.Date
from tatable as t1 left join tatable as t2
on t1.ID=t2.ID and datediff(t1.Date,2.Date)=1
order by ID, t1.Date

n'hésite pas à expliciter "les soustractions me donnent un résultat faux".
0