1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : mars 2017
    Messages : 2
    Points : 2
    Points
    2

    Par défaut Opération sur un base SQL

    Bonjour, je suis novice en language sql.

    Je possède une box domotique eedomus qui rempli une base sql sur un serveur synology journalièrement avec mes index HC/HP de mon compteur EDF.

    J'aimerais pouvoir traiter ces données afin de les renvoyer vers ma box domotique par le biais d'un script pour en sortir ma conso jour hier, mensuelle, et annuelle.

    Mon problème est que ne ne sait pas comment faire pour faire les opérations sur les index automatiquement :

    conso hc jour hier = index hc aujourd'hui - index hc de hier
    conso hp jour hier = index hp aujourd'hui - index hp de hier
    conso hc mensuelle = index hc aujourd'hui - index hc du 1er jour du mois
    conso hp mensuelle = index hp aujourd'hui - index hp du 1er jour du mois
    conso hc annuelle= index hc aujourd'hui - index hc du 1er jour de l'année
    conso hp annuelle= index hp aujourd'hui - index hp du 1er jour de l'année

    Ci joint une vue de ma base :

    id date conso_HC conso_HP
    1 01/03/2017 9986000 12827000
    2 02/03/2017 10006000 12834000
    3 03/03/2017 10016000 12841000
    4 04/03/2017 10040000 12854000
    5 05/03/2017 10060000 12865000
    6 06/03/2017 10080000 12875000
    7 07/03/2017 10099000 12882000
    8 08/03/2017 10117000 12888000
    9 09/03/2017 10130000 12893000
    10 10/03/2017 10138000 12900000
    11 11/03/2017 10153000 12909000
    12 12/03/2017 10171000 12923000
    13 13/03/2017 10196000 12933000
    14 14/03/2017 10215000 12942000
    15 15/03/2017 10231000 12954000
    etc...

    Si jamais cela par le à quelqu'un.... Merci d'avance pour votre aide....

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    7 442
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 7 442
    Points : 22 555
    Points
    22 555

    Par défaut

    Pour pouvoir te répondre au mieux, il nous faudrait connaître le SGBD (et sa version) avec lequel est enregistrée cette table pour savoir quelles fonctions pourraient être utilisées pour répondre à ton besoin.
    D'un autre côté tu peux aussi aller consulter les tutoriels SQL pour essayer de composer par toi-même ces requêtes.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre éclairé

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    novembre 2014
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2014
    Messages : 514
    Points : 830
    Points
    830
    Billets dans le blog
    2

    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE [dbo].[indexe](
    	[id] [int] IDENTITY(1,1) NOT NULL,
    	[date1] [date] NULL,
    	[conso_HC] [int] NULL,
    	[conso_HP] [int] NULL
    ) ON [PRIMARY]
     
    GO
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    select E.date1,E.conso_HC,E.conso_HP ,
    coalesce(E.conso_HC-lag(E.conso_HC,1)over(order by E.date1 ASC),0)as conso_hc_jour_hier,
    coalesce(E.conso_HC-lag(E.conso_HP,1)over(order by E.date1 ASC),0)as conso_hc_jour_hier,
    (E.conso_HC-INDEXE2.conso_HC)as conso_hc_mensuelle,
    (E.conso_HP-INDEXE2.conso_HP)as conso_hc_mensuelle,
    (E.conso_HC-INDEXE3.conso_HC)as conso_hc_annuelle,
    (E.conso_HP-INDEXE3.conso_HP)as conso_hp_annuelle
    from indexe E left outer join (select *  from indexe where date1=DATEADD ( mm , DATEDIFF ( mm , 0 , date1), 0 )) as indexe2  
    ON MONTH(E.date1)=MONTH(indexe2.date1)
    left outer join ( select * from indexe where date1=DATEADD ( yy , DATEDIFF ( yy , 0 , date1), 0 )) as indexe3
    on year(E.date1)=year(indexe3.date1)

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Santé

    Informations forums :
    Inscription : mars 2017
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    Bon, j'ai essayé de mettre en place le dernier post, mais rien ne fonctionne. Je ne suis probablement pas assez calé !!!!

    Je vais essayer de chercher et ne manquerais pas de vous tenir informés.

    Pour ce qui est de la version de PHP myadmin :4.6.5

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    janvier 2010
    Messages
    4 585
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : janvier 2010
    Messages : 4 585
    Points : 9 290
    Points
    9 290

    Par défaut

    Bonjour,

    Il y a peut-être une alternative si l'on considère que les indices de consommation sont toujours croissants (pas de remise à zéro...).

    Vous pouvez filtrer sur la période à calculer (toutes les données du mois, pour avoir la consommation du mois) et faire la différence entre le maximum et le minimum pour obtenir la consommation.

Discussions similaires

  1. Copie de table sur une base SQL Server 2005
    Par stephyugh dans le forum MS SQL-Server
    Réponses: 2
    Dernier message: 09/04/2008, 14h30
  2. erreur de connection sur une base sql à partir de vb6
    Par diatta dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/04/2007, 14h12
  3. Droits sur les base SQL
    Par fabguy dans le forum MS SQL-Server
    Réponses: 1
    Dernier message: 06/06/2006, 10h00
  4. Réponses: 1
    Dernier message: 19/01/2006, 11h45
  5. Connexion dynamique sur une base SQL Server
    Par jh0483 dans le forum MS SQL-Server
    Réponses: 1
    Dernier message: 19/08/2005, 16h10

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