Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/01/2011, 16h09   #1
Candidat au titre de Membre du Club
 
Étudiant
Inscription : octobre 2007
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2007
Messages : 36
Points : 10
Points : 10
Par défaut Bug: SUM() renvoie le double du résultat attendu

Bonjour,

j'ai une table MySQL contenant des enregistrememnts de floats(environ 10 000 enregistrements) quand je tente de faire la somme de ces 10 000 enregistrement par:
Code :
1
2
3
SELECT sum(enregistrement) 
FROM TABLE ma_table 
WHERE date_transfert LIKE 'aaaa-mm-jj %';
cette commande me renvoie toujours le double de la somme attendue (genre 1500 au lieu de 750).

est-ce que quelqu'un saurait d'où vien le problème? (à part le problème que je suis nul en BDD )

merci!
K2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 16h30   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour

Bizarre en effet !

1/ fais-tu réellement une requete aussi simple que celle que tu as postée (pas de jointure ? ça sent le produit cartésien ! )

2/ comment fais-tu pour calculer le résultat attendu ?
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 17h16   #3
Candidat au titre de Membre du Club
 
Étudiant
Inscription : octobre 2007
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2007
Messages : 36
Points : 10
Points : 10
Bonjour aieeeuuuuu,

en fait j'ai un peu simplifié la requête, mais d'ans l'esprit c'est ça... mais si tu veux voici la vrai synthaxe exacte que j'utilise:

Code :
1
2
3
4
SELECT sum(puissance_AC/1000) 
FROM day_ond 
WHERE adr_ond LIKE '1' 
  AND date_transfert LIKE '2011-01-27 %';
mais je dois expliquer tout depuis le début, tu vas comprendre:

j'ai deux tables:
- ond: qui archive les données du jour courant
- day_ond: qui archive les données de tous les jours depuis le 2010-11-01

nous sommes le jour n:

quand je fais l'opération de somme sur la table ond
Code :
1
2
3
SELECT sum(puissance_AC/1000) 
FROM ond 
WHERE adr_ond LIKE '1';
j'obtiens alors : 800.

maintenant nous sommes le jour n+1, les données de la table ond sont maintenant archivées dans la tables day_ond:

je fais alors:
Code :
1
2
3
4
SELECT sum(puissance_AC/1000) 
FROM day_ond 
WHERE adr_ond LIKE '1' 
  AND date_transfert LIKE '2010-01-27 %';
. j'obtiens maintenant : 1600.

voilà!

(je sais pas pour toi, mais moi je trouve ça très bizarre)
K2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 17h37   #4
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
C'est pour ca que je te demandais comment tu faisais pour vérifier !

Es-tu sur que le problème ne vient pas plutôt de l'opération d'archivage, qui insère deux fois par exemple ?

est-ce qu'un count(*) ne te renvoi pas également le double du nombre de lignes ?
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 09h02   #5
Candidat au titre de Membre du Club
 
Étudiant
Inscription : octobre 2007
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2007
Messages : 36
Points : 10
Points : 10
Bonjour,

moi aussi j'ai pensé à ça, mais non.... les archves sont sauvegardées 1 fois pas 2.
et le count me renvoie le nombre exact.

une autre idée?
merci
K2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2011, 13h24   #6
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Tu lances tes requêtes directement sur le serveur ou via un logiciel ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2011, 11h10   #7
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
Envoyé par K2000 Voir le message
Bonjour aieeeuuuuu,

Code :
1
2
3
4
SELECT sum(puissance_AC/1000) 
FROM day_ond 
WHERE adr_ond LIKE '1' 
  AND date_transfert LIKE '2011-01-27 %';
Code :
1
2
3
4
SELECT sum(puissance_AC/1000) 
FROM day_ond 
WHERE adr_ond LIKE '1' 
  AND date_transfert LIKE '2010-01-27 %';

Je reviens dessus, je viens de voir que l'année n'est pas la même dans les deux requêtes... est-ce juste une erreur de copier/coller ?
(je suppose, vu que tu dis que les données sont archivées depuis le 2010-11... mais ca vaut le coup de vérifier )
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 09h37   #8
Candidat au titre de Membre du Club
 
Étudiant
Inscription : octobre 2007
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2007
Messages : 36
Points : 10
Points : 10
Bonjour à tous,

@ CinePhil: Non, je n'utilise pas de logiciel particulier, je suis sur Mysql, et je lance mes requêtes à partir de ma console linux, et j'obtient les mêmes résultats lorsque je lance ces requêtes à partir de scripts php.

@aieeeuuuuu : oui oui il s'agis bien d'une erreur de frappe... je voulais dire 2011

d'autres idées?
K2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 09h57   #9
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
non aucune !

pour pouvoir avancer, à ce stade, il nous faudrait au moins :

1/ La DDL des tables
2/ ta procédure d'archivage
3/ un jeu d'essai éventuellement

Et surtout, donne des vrais données, pas des exemples interprétés, car vu le type de problème, je pense que c'est un petit détail...

Si tu remet que des exemples pour le principe de fonctionnement, tu va masquer ce petit problème !

En effet, des choses me surprennent dans ce que tu dis :
tu dis que ta colonne puissance_AC est de type float, mais dans les exemples que tu donnes, même après division par 1000, tu tombe encore sur des comptes drôlement rond : 800, 1600, ...

PS: essaie sans la division par 1000 pour voir si tu as le même résultats.
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 11h33   #10
Candidat au titre de Membre du Club
 
Étudiant
Inscription : octobre 2007
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2007
Messages : 36
Points : 10
Points : 10
Salut,

voici comment j'archive mes données:

Code :
mysql_query("INSERT INTO day_ond SELECT * from ond");
c'est un code php que je lance toutes les 24H pour archivage

voici un exemple concret qui met en évidence le BUG:

Code :
SELECT sum(Energie_jour)/1000 FROM day_ond WHERE date_transfert LIKE '2011-01-% %' GROUP BY date_transfert;
et ceci me renvoi:
Code :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
 59.058 | 
|                 59.058 | 
|                  0.586 | 
|                  0.586 | 
|                  19.15 | 
|                  19.15 | 
|                 22.647 | 
|                 22.647 | 
|                 67.668 | 
|                 67.668 | 
|                 20.212 | 
|                 20.212 | 
|                 27.781 | 
|                 27.781 | 
|                 78.587 | 
|                 78.587 | 
|                  3.414 | 
|                  3.414 | 
|                 10.619 | 
|                 10.619 | 
|                      0 | 
|                      0 | 
|                 94.862 | 
|                 94.862 | 
|                108.802 | 
|                108.802 | 
|                127.295 | 
|                127.295 | 
|                121.197 | 
|                121.197 | 
|                 75.995 | 
|                 75.995 | 
|                  59.93 | 
|                  59.93 | 
|                  7.642 | 
|                  7.642 | 
|                  2.261 | 
|                  2.261 | 
|                  0.054 | 
|                  0.054 | 
|                  0.609 | 
|                  0.609 | 
|                  0.456 | 
|                  0.456 | 
|                  0.494 | 
|                  0.494 | 
|                 12.879 | 
|                 12.879 | 
|                 79.782 | 
|                 79.782 | 
|                 59.134 | 
|                 59.134 | 
|                 81.981 | 
|                 81.981
Donc le fait que je mette "group by date_transfert" met en évidence le fait que mes données sont mentionnées deux fois (et du coup sommées deux fois), et ceci uniquement lorsque j'utilise la fonction SUM!!! si je fais un simple listing (sans SUM) aucun doublon n'apparait!

Pour l'instant la seule parade que j'ai trouvé est d'insérer la fonction "distinct" pour enlever les doublons:

Code :
SELECT DISTINCT sum(Energie_jour)/1000 FROM day_ond WHERE date_transfert LIKE '2011-01-% %' GROUP BY date_transfert;
et le résultat me donne:
Code :
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
59.058 | 
|                  0.586 | 
|                  19.15 | 
|                 22.647 | 
|                 67.668 | 
|                 20.212 | 
|                 27.781 | 
|                 78.587 | 
|                  3.414 | 
|                 10.619 | 
|                      0 | 
|                 94.862 | 
|                108.802 | 
|                127.295 | 
|                121.197 | 
|                 75.995 | 
|                  59.93 | 
|                  7.642 | 
|                  2.261 | 
|                  0.054 | 
|                  0.609 | 
|                  0.456 | 
|                  0.494 | 
|                 12.879 | 
|                 79.782 | 
|                 59.134 | 
|                 81.981
là tous les doublons sont supprimés. Alors ça régle mon problème, mais c'est une manière de tricher... je vais continuer à utiliser "distinct" mais mon MySQL déconne quelquepart, mais où?!
K2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 11h50   #11
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
Envoyé par K2000 Voir le message
Pour l'instant la seule parade que j'ai trouvé est d'insérer la fonction "distinct" pour enlever les doublons:
en effet, c'est pas très propre !

1/ Quand et comment supprimes-tu les données de la table ond ?

2/ peux-tu nous donner le resulats de cette requete :
Code sql :
1
2
3
4
5
 
SELECT date_transfert, sum(Energie_jour)/1000 
FROM day_ond 
WHERE date_transfert LIKE '2011-01-% %' 
GROUP BY date_transfert ;

3/ quel est le format de date_transfert ? (si tu peux même poster la définition des deux tables, ce serait encore mieux !)
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 12h17   #12
Candidat au titre de Membre du Club
 
Étudiant
Inscription : octobre 2007
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2007
Messages : 36
Points : 10
Points : 10
salut,

voici ce que j'utilise pour supprimer ma table ond:
je la supprime tous les jours à 23:30H (pour pouvoir réceptionner les nouvelles données du jour n+1)

voici ce que me retourne ta requette:
Code :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
+---------------------+------------------------+
| date_transfert      | sum(Energie_jour)/1000 |
+---------------------+------------------------+
| 2011-01-01 22:00:22 |                 59.058 | 
| 2011-01-01 23:00:22 |                 59.058 | 
| 2011-01-02 22:00:25 |                  0.586 | 
| 2011-01-02 23:00:24 |                  0.586 | 
| 2011-01-03 22:00:33 |                  19.15 | 
| 2011-01-03 23:00:25 |                  19.15 | 
| 2011-01-04 22:00:26 |                 22.647 | 
| 2011-01-04 23:00:18 |                 22.647 | 
| 2011-01-05 22:00:22 |                 67.668 | 
| 2011-01-05 23:00:16 |                 67.668 | 
| 2011-01-06 22:00:18 |                 20.212 | 
| 2011-01-06 23:00:17 |                 20.212 | 
| 2011-01-07 22:00:19 |                 27.781 | 
| 2011-01-07 23:00:26 |                 27.781 | 
| 2011-01-08 22:00:23 |                 78.587 | 
| 2011-01-08 23:00:21 |                 78.587 | 
| 2011-01-09 22:00:24 |                  3.414 | 
| 2011-01-09 23:00:23 |                  3.414 | 
| 2011-01-10 22:00:22 |                 10.619 | 
| 2011-01-10 23:00:21 |                 10.619 | 
| 2011-01-11 22:01:49 |                      0 | 
| 2011-01-11 23:01:48 |                      0 | 
| 2011-01-14 22:00:19 |                 94.862 | 
| 2011-01-14 23:00:18 |                 94.862 | 
| 2011-01-15 22:01:44 |                108.802 | 
| 2011-01-15 23:01:45 |                108.802 | 
| 2011-01-16 22:00:21 |                127.295 | 
| 2011-01-16 23:00:21 |                127.295 | 
| 2011-01-17 22:01:44 |                121.197 | 
| 2011-01-17 23:01:45 |                121.197 | 
| 2011-01-18 22:00:31 |                 75.995 | 
| 2011-01-18 23:00:28 |                 75.995 | 
| 2011-01-19 22:00:17 |                  59.93 | 
| 2011-01-19 23:00:17 |                  59.93 | 
| 2011-01-20 22:01:41 |                  7.642 | 
| 2011-01-20 23:01:42 |                  7.642 | 
| 2011-01-21 22:00:17 |                  2.261 | 
| 2011-01-21 23:00:18 |                  2.261 | 
| 2011-01-22 22:00:19 |                  0.054 | 
| 2011-01-22 23:00:20 |                  0.054 | 
| 2011-01-23 22:00:33 |                  0.609 | 
| 2011-01-23 23:00:21 |                  0.609 | 
| 2011-01-24 22:00:23 |                  0.456 | 
| 2011-01-24 23:00:22 |                  0.456 | 
| 2011-01-25 22:00:25 |                  0.494 | 
| 2011-01-25 23:00:26 |                  0.494 | 
| 2011-01-26 22:00:26 |                 12.879 | 
| 2011-01-26 23:00:27 |                 12.879 | 
| 2011-01-27 22:00:18 |                 79.782 | 
| 2011-01-27 23:00:18 |                 79.782 | 
| 2011-01-28 22:00:18 |                 59.134 | 
| 2011-01-28 23:00:17 |                 59.134 | 
| 2011-01-29 22:00:19 |                 81.981 | 
| 2011-01-29 23:00:20 |                 81.981 | 
+---------------------+------------------------+
voici la définition de mes tables (ond et day_ond) sont identiques:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
+----------------+-------------+------+-----+-------------------+-----------------------------+
| FIELD          | Type        | NULL | KEY | DEFAULT           | Extra                       |
+----------------+-------------+------+-----+-------------------+-----------------------------+
| date_transfert | timestamp   | NO   |     | CURRENT_TIMESTAMP | ON UPDATE CURRENT_TIMESTAMP | 
| temps          | varchar(10) | YES  |     | NULL              |                             | 
| intervalle     | int(11)     | YES  |     | NULL              |                             | 
| adr_ond        | varchar(10) | YES  |     | NULL              |                             | 
| KPC            | float       | YES  |     | NULL              |                             | 
| tension_DC     | float       | YES  |     | NULL              |                             | 
| courant_DC     | float       | YES  |     | NULL              |                             | 
| puissance_DC   | float       | YES  |     | NULL              |                             | 
| tension_AC     | float       | YES  |     | NULL              |                             | 
| courant_AC     | float       | YES  |     | NULL              |                             | 
| puissance_AC   | float       | YES  |     | NULL              |                             | 
| T_onduleur     | float       | YES  |     | NULL              |                             | 
| Energie_jour   | float       | YES  |     | NULL              |                             | 
+----------------+-------------+------+-----+-------------------+-----------------------------+
merci pour ton aide!
K2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 13h30   #13
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
Tu as deux date_transfert par jour : une à 22h et une à 23h. Ta procédure de transfert ne se lancerait-elle pas deux fois ?
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h08   #14
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
Envoyé par K2000 Voir le message
Bonjour,

moi aussi j'ai pensé à ça, mais non.... les archves sont sauvegardées 1 fois pas 2.
et le count me renvoie le nombre exact.
Citation:
Envoyé par CinePhil Voir le message
Tu as deux date_transfert par jour : une à 22h et une à 23h. Ta procédure de transfert ne se lancerait-elle pas deux fois ?
Il y a quand même quelque chose d'étrange...

Est-ce que le truncate est effectué par la procédure qui archive ?
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h43   #15
Candidat au titre de Membre du Club
 
Étudiant
Inscription : octobre 2007
Messages : 36
Détails du profil
Informations personnelles :
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2007
Messages : 36
Points : 10
Points : 10
Oui, le TRUNCATE est executé par la procédure qui rachive... tu pense que ça vien de là? parceque je fais un TRUNCATE et un LOAD DATA LOCAL INFILE dans la même procédure? si c'est ça je n'y comprend rien (mais alors là rien à rien! )
K2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h47   #16
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 10 990
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 10 990
Points : 18 241
Points : 18 241
Envoyer un message via MSN à CinePhil
On peut voir le code de la procédure ?
Et comment est lancée cette procédure ? Parce que ce que je constate, comme dit dans mon message précédent, c'est qu'il y a une insertion à 22h et une autre à 23h !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h51   #17
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Non, je ne crois rien... c'était juste pour essayer de comprendre...

Et à vrai dire, c'est encore pire qu'avant !
Car si la procédure qui archive est la même que celle qui efface les données dans la table source, alors le fait de la lancer deux fois ne devrait pas poser ce problème...




peux tu nous mettre le code complet de la procédure

et aussi, qui la lance, comment, quand...
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 14h53   #18
Membre Expert
 
Avatar de jabbounet
 
frederic frances
Inscription : juin 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : frederic frances
Âge : 36

Informations forums :
Inscription : juin 2009
Messages : 1 703
Points : 2 115
Points : 2 115
ta requête ne fait peu être pas tout a fait ce que tu crois, as tu essayé explain pour voir comment mysql comprend ta requête

http://dev.mysql.com/doc/refman/5.0/en/explain.html
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis.
http://www.improetcompagnie.com/publ...ctacles-6.html

Citation:
Envoyé par Isaac Asimov
Pour réussir, il ne suffit pas de prévoir. Il faut aussi savoir improviser
Pour les utilisateurs d'emacs:
http://www.emacswiki.org/

Attends de voir ce qui vas sortir de:
http://www.pushmid.com
jabbounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 15h48   #19
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : janvier 2006
Messages : 951
Points : 1 063
Points : 1 063
Depuis le début, je lis que c'est le petit résultat qui est le résultat juste. Pourquoi ce ne serai pas le grand résultat?

On voit clairement dans un des messages ci dessous que la mesure pour deux secondes consécutives sont identiques. Normal? my bad.

le résultat de ceci?
Code :
1
2
3
4
5
 
SELECT date_transfert, sum(Energie_jour)/1000, count(energie_jour)
FROM day_ond 
WHERE date_transfert LIKE :pattern 
GROUP BY date_transfert WITH ROLLUP;
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 16h01   #20
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Citation:
Envoyé par aieeeuuuuu Voir le message
Bonjour

Bizarre en effet !

1/ fais-tu réellement une requete aussi simple que celle que tu as postée (pas de jointure ? ça sent le produit cartésien ! )

2/ comment fais-tu pour calculer le résultat attendu ?

Je repose la 2éme question de mon premier post !!!

Si ta procédure d'archivage fait un truncate, comment peux-tu comparer les données entre les deux tables ? car avant l'archivage, elles sont dans la table ond_day, et pas dans ond, et après archivage, c'est l'inverse !
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h56.


 
 
 
 
Partenaires

Hébergement Web