Dans ce tableau, je stocke des valeurs modifiables pour certains spids. Au fil des jours, ces valeurs peuvent changer, et un spid peut obtenir une nouvelle valeur.Déterminer la date 'valide jusqu'à' dans la requête MySQL
Maintenant, je veux savoir jusqu'à quand une certaine valeur est activée.
Ce sont les données pour un SPID unique
uid spid propertyvalue creationdate
--------------------------------------------------
1 3 First name 2010-01-17 22:34:00
37 3 Second name 2010-01-18 01:07:24
38 3 Third name 2010-01-18 01:09:00
39 3 Fourth name 2010-01-18 01:18:16
40 3 Fifth name 2010-01-18 01:20:02
Ainsi, la première valeur commence à 2010-01-18 01:07:24 et serait valable jusqu'au 01 2010-01-18: 01:00.
Je l'ai déjà essayé cette requête:
SELECT s1 . * ,
s2.creationdate AS datetwo
FROM salespointproperty s1
JOIN salespointproperty s2 ON s1.spid = s2.spid
AND s1.creationdate < s2.creationdate
Cela me donne beaucoup de doubles disques (certains d'entre eux mal), et il laisse toujours le dernier nouveau nom (comme il n'a pas de nouveau creationdate le suivant) Exemple:
uid spid propertyvalue creationdate datetwo
--------------------------------------------------------------
1 3 First name 2010-01-17 22:34:00 2010-01-18 01:07:24 *
1 3 First name 2010-01-17 22:34:00 2010-01-18 01:09:00
37 3 Second name 2010-01-18 01:07:24 2010-01-18 01:09:00 *
1 3 First name 2010-01-17 22:34:00 2010-01-18 01:18:16
37 3 Second name 2010-01-18 01:07:24 2010-01-18 01:18:16
38 3 Third name 2010-01-18 01:09:00 2010-01-18 01:18:16 *
1 3 First name 2010-01-17 22:34:00 2010-01-18 01:20:02
37 3 Second name 2010-01-18 01:07:24 2010-01-18 01:20:02
38 3 Third name 2010-01-18 01:09:00 2010-01-18 01:20:02
39 3 Fourth name 2010-01-18 01:18:16 2010-01-18 01:20:02 *
Seules les lignes avec un asterix sont corrects. Le cinquième nom est manquant.
Ce jointure ne fait pas beaucoup de sens. –
1. Vos données d'échantillon n'ont pas uid = 1. Veuillez ajouter cela. 2. Dans les résultats, les dates de création de l'uid 37-39 sont les dates de création de 36-38 respectivement. Est-ce correct? – lins314159
Oui, ils l'étaient, je les ai réparés maintenant. – skerit