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

Langage SQL Discussion :

Opération sur un base SQL


Sujet :

Langage SQL

  1. #1
    Invité
    Invité(e)
    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
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 106
    Points : 28 393
    Points
    28 393
    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.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Novembre 2014
    Messages
    816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

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

    Informations forums :
    Inscription : Novembre 2014
    Messages : 816
    Points : 1 354
    Points
    1 354
    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
    Invité
    Invité(e)
    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
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    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, 13h30
  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, 13h12
  3. Droits sur les base SQL
    Par fabguy dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 06/06/2006, 09h00
  4. Réponses: 1
    Dernier message: 19/01/2006, 10h45
  5. Connexion dynamique sur une base SQL Server
    Par jh0483 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 19/08/2005, 15h10

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