|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mai 2011 Messages : 8 ![]() |
Bonjour,
J'ai actuellement un problème pour faire la différence entre 2 valeurs d'une table Tout d'abord voici la requête: Code :
http://imageshack.us/photo/my-images/233/tabley.png/ Ici, le problème est que le capteur qui me remonte l'information (données de la consommation d'eau sur une ligne) se remet à 0 tous les 9999m3 Du coup, peut être l'aurais vous déjà remarqué au niveau des résultats renvoyés, chaque fois que la valeur se remet à 0 le résultat de la différence entre la valeur max et min est faussé (pour exemple on peut voir que la valeur 9257 en semaine 3) Juste pour info voici le résultat renvoyé si je demande uniquement la valeur max: Me renvoie le résultat: http://imageshack.us/photo/my-images/109/table2e.png/ Merci de toute aide que vous pourriez me fournir |
||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() ![]() Inscription : juillet 2006 Messages : 1 194 ![]() |
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 8 ![]() |
Tout d'abord merci de prêter attention à mon sujet
La version SQL utilisé est la 2005 |
|
|
00
|
|
|
#4 |
|
Membre chevronné
![]() ![]() Inscription : juillet 2006 Messages : 1 194 ![]() |
Est-ce que votre objectif est de mesurer la consommation hebdomadaire ?
Auquel cas, il vous faut mesurer non pas la différence entre la plus grande et la plus petite valeur dans la semaine mais la différence entre la dernière valeur de la semaine et celle de la semaine précédente. |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 8 ![]() |
En effet c'est bien une historisation hebdomadaire qui m'intéresse et c'est dans ce cas où j'ais du mal à formuler ma requête
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 520 ![]() |
Avant de chercher compliqué, c'est quoi le type de Value ?
__________________
les règles du forum - mode d'emploi du forum Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur) JE NE RÉPONDS PAS aux questions techniques par message privé. Écrire en français sur un forum est une marque minimale de respect. |
|
|
00
|
|
|
#7 | ||
|
Membre chevronné
![]() ![]() Inscription : juillet 2006 Messages : 1 194 ![]() |
Le plus simple (en terme d'écriture et de lecture du query) est sans doute de faire une CTE récursive.
Je pense qu'une table variable correctement utilisée pourrait aussi être utile dans votre cas. Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() |
Bonjour,
-1 pour la colonne nommée datetime! Sinon vous avez un relevé journalier des consommations? Il est aisé de savoir quand le compteur se remet à 0 (valeur du jour< valeur de la veille... en partant du principe que vous ne pouvez faire plus de 10000 dans la journée)... A partir de là le reste est trivial...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
|
|
#9 |
|
Membre chevronné
![]() ![]() Inscription : juillet 2006 Messages : 1 194 ![]() |
|
|
|
00
|
|
|
#10 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour
Avec une auto jointure, pour vérifier la valeur "précédente" (pas testé): Code SQL :
Le filtre sur la date pourrait être mis dans la CTE, mais il manquerait alors la valeur précédente de la première ligne, ce qui peut être corrigé autrement (par exemple une requête dans le COALESCE...)... |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com