IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Calcul sur les champs d'une table


Sujet :

Requêtes et SQL.

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 9
    Points : 10
    Points
    10
    Par défaut Calcul sur les champs d'une table
    Bonjour

    J'ai une table nommée "Elec" qui contient trois champs :
    - un champ date
    - un champ heure
    - un champ Compteur
    Cette table est alimentée par la valeur de l'index d'un compteur électrique.
    Le nombre d'enregistrement par heure ou par jour est variable selon l'alimentation du montage.
    j'ai crée un certain nombre de requêtes pour extraire les enregistrements du jour, du mois, etc ...
    Comment puis-je calculer la différence de consommation entre le premier et le dernier enregistrement de ma requête, et éventuellement le stocker dans un champ "Conso_Jour"

  2. #2
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 090
    Points : 5 207
    Points
    5 207
    Par défaut
    Bonjour,

    Le compteur de départ peut s'obtenir par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select top 1 compteur from MaTable order by MaDate
    Idem pour le dernier avec "desc" dans l'order by

    On peut aussi ajouter une condition pour filtrer sur une période...
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  3. #3
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut nico84 et bienvenu cvfe13,

    cette requête te permet de te donner la consommation entre deux dates:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    parameters [debut] dateTime, [fin] dateTime ;
    select dfirst("compteur", "Elec", "(Elec.date+Elec.heure)>=#" & fin & "#") - dfirst("compteur", "Elec", "(Elec.date+Elec.heure)>=#" & debut & "#") as conso

  4. #4
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 090
    Points : 5 207
    Points
    5 207
    Par défaut
    Bonjour Vodiem,

    Je ne connaissais pas Dfirst mais dans la mesure où la syntaxe ne permet pas de préciser un "order by" je crains que cela renvoie "le premier qui lui passe sous la main" et non "le plus vieux", non ?

    C'est en tout cas ce que me dit une recherche rapide sur le net

    Ceci dit, comme il s'agit d'une table générée par une enregistrement d'une source d'info, ça a de bonnes chances de marcher quand même car les enregistrements sont "naturellement dans l'ordre chronologique"...
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

  5. #5
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut nico84,
    oui tu as raison de préciser que l'ordre chronologique de saisie doit être respecté.
    j'avais opté aussi au départ pour des différences de top 1 mais l'imbrication de select sans clause from : le sql d'access n'accepte pas.
    ex: select (select 1)

    toutefois pour lever cette ambiguïté un DMax() ou DMin() devrait faire l'affaire.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Merci pour vos réponses.

    Effectivement, un Max(Compteur) et un Min(compteur) correspondent le mieux à mon cas.

  7. #7
    Expert confirmé Avatar de nico84
    Homme Profil pro
    Consultant/développeur ERP
    Inscrit en
    Mai 2008
    Messages
    3 090
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant/développeur ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 3 090
    Points : 5 207
    Points
    5 207
    Par défaut
    Si l'utilisateur a un panneau solaire en ligne cela ne marchera plus
    Utilisez Planet, gestion d'entreprise gratuite pour TPE / PME

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/02/2014, 15h22
  2. Gestion des priorités sur les champs d'une table
    Par randriano dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/02/2013, 08h17
  3. index sur les champs d'une table de liaison
    Par katosix dans le forum Débuter
    Réponses: 1
    Dernier message: 17/08/2010, 08h44
  4. Conditions sur les champs d'une même table
    Par Pucho dans le forum Modélisation
    Réponses: 10
    Dernier message: 19/10/2007, 17h52
  5. requete ajout caractere sur tous les champs d'une table
    Par lorenzo74 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 24/06/2006, 13h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo