Bonjour,

j'ai une table avec des données qui sont inséré tout les jours, avec la date du jour dans "created", chaque jour il y à la "population" qui change dans la table pour chaque village, et il me faut dans la requête, le delta du j et j-1 de la population, j'ai fait deux sous-requête pour ça : une requête qui ramène la population du jour j, une autre qui ramène la population du jour j-1, et je fait le delta, est ce que ça serait mieux de faire ça avec des "join" ou les sous requête sont viable ou si vous avez un moyen plus optimisé je suis preneur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
SELECT x.aid, x.vid, x.village, x.population, d.delta 
FROM 
(
    SELECT TO_DAYS(MAX(created)) AS mx 
    FROM x_world
) s, 
(
    SELECT min.vid, min.village, (max.population - min.population) delta 
    FROM 
    (
        SELECT vid, village, population 
        FROM 
        (
            SELECT TO_DAYS(MAX(created))-1 AS mx 
            FROM x_world
        ) s, x_world x 
        WHERE player = %s 
            AND TO_DAYS(x.created) = s.mx
    ) min, 
    (
        SELECT vid, village, population 
        FROM 
        (
            SELECT TO_DAYS(MAX(created)) AS mx 
            FROM x_world
        ) s, x_world x 
        WHERE player = %s 
            AND TO_DAYS(x.created) = s.mx
    ) max 
    WHERE min.vid = max.vid
) d, x_world x 
WHERE player = %s 
    AND TO_DAYS(x.created) = s.mx 
    AND x.vid = d.vid
Merci d'avance