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

Développement SQL Server Discussion :

Calcul de la facture d'énergie électrique en langage sql


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut Calcul de la facture d'énergie électrique en langage sql
    Bonjour et excuser moi de vous poser plusieurs problèmes à la fois j'ai créé une autre table dans la base de données de gestion usine pour les relevés de l'indexe du compteur d'énergie électrique au quotidien. le but est de faire la différence après deux relevés pour connaitre la consommation en une journée par exemple. pour cela je pense créé une vue pour insérer la formule de calcul mais comme il s'agira de de prendre la même colonne pour faire la différence entre 2 enregistrement ([T1(12KW)]de 07/01/2017-[T1(12KW)] du 08/01/2017), je ne sais comment m'y prendre pouvez m'aider si vous avez une idée?
    Code de création de la table
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Create table Relevé_Compteur_Energie
    (
    Date_Heure Datetime ,
    [T1(12KW)] Numeric,
    [T2(12KW)] Numeric,
    [T1(13KVAR)] Numeric,
    [T2(13KVAR)] Numeric,
    Pmax_Atteinte Numeric
    )
    Go
    aperçu de la table
    Nom : Capture1.PNG
Affichages : 899
Taille : 33,8 Ko

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Bonjour,

    Il est tout à fait possible d'utiliser une auto-jointure, c'est à dire de spécifier une jointure de la table sur elle-même. Dans votre cas, cela donne, par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT		RCE_1.Date_Heure AS date_debut
    		, RCE_2.Date_Heure AS date_fin
    		, RCE_2.[T1(12KW)] - RCE_1.[T1(12KW)] AS consommation
    		, RCE_2.[T2(12KW)] - RCE_1.[T2(12KW)] AS consommation
    		, RCE_2.[T1(13KVAR)] - RCE_1.[T1(13KVAR)] AS consommation
    		, RCE_2.[T2(13KVAR)] - RCE_1.[T2(13KVAR)] AS consommation
    FROM		dbo.Relevé_Compteur_Energie AS RCE_1
    INNER JOIN	dbo.Relevé_Compteur_Energie AS RCE_2
    			ON RCE_1.Date_Heure = DATEADD(day, -1, RCE_2.Date_Heure)
    			--Ou si vous préférez ON DATEADD(day, 1, RCE_1.Date_Heure) = RCE_2.Date_Heure
    Cette requête est valide pour votre jeu de données si la colonne Date_Heure stocke l'heure à zéro (par exemple pour aujourd'hui : 2017-09-01 00:00:00)

    Quelques petites remarques :

    • Il est dangereux d'utiliser des noms d'objets ou des identifiants avec des accents ou autres caractères cabalistiques
    • Si la colonne Date_Heure ne stocke que des valeurs pour lesquelles l'heure est à zéro, il est intéressant de changer le type de données de cette colonne à date
    • Utilisez toujours les types de données les plus petits possible : on enregistre la valeur du compteur sous le type numeric, d'ailleurs sans préciser ni la précision, ni l'échelle, alors que les valeurs sont de type entier. Donc on utilise 9 octets au lieu de 4 avec le type int. Sur plusieurs millions de lignes, ça commence à faire pas mal, et ce sont les performances de votre base de données s'en ressentiront, puisqu'alors il faut plus d'opérations IO pour un résultat identique.


    @++

  3. #3
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut
    Salut et grand merci de prendre vraiment du temps pour vous pencher sur mon problème.
    J'essaie et je vous tiens informé.

  4. #4
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut
    Ça marche très bien merci je vais pouvoir avancer avec mon projet sans soucis.
    Merci encore car j'ai vraiment appris quelque chose de plus, donc tout est possible

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Par défaut
    Avec plaisir

  6. #6
    Membre éclairé
    Homme Profil pro
    ETUDE
    Inscrit en
    Septembre 2016
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : ETUDE
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2016
    Messages : 360
    Par défaut
    Pardon pour le dérangement j'ai un autre soucis avec avec les conditions en fait je souhaite calculer la puissance électrique des machine dans une usine j'ai donc créé une condition avec sql Case tel-que lorsque la puissance doit être calculer pour un réseau triphasé la formule est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ([Quantité]*[Un(V)]*[In(A)]*[Cosphi]*SQRT(3)
    et pour un réseau monophasé, ([Quantité]*[Un(V)]*[In(A)].
    le code sql est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    USE GESTION_USINE
    ---------------------------------
     
    DROP VIEW V_LaminoirT1
    GO
    CREATE VIEW V_LaminoirT1 AS
    SELECT [Désignation], [Quantité], [Pu(KW)], [Un(V)], [In(A)],[Cosphi],
    Case When [Cosphi]<1 Then ([Quantité]*[Un(V)]*[In(A)]*[Cosphi]*SQRT(3))
    when [Cosphi]=0 ([Quantité]*[Un(V)]*[In(A)]*)  
    AS [Pa(W)], ROUND(SUM(Quantité*[Un(V)]*[In(A)]*[Cosphi]*SQRT(3))/1000, 2) 
    AS [Pa(KW)],ROUND(((Quantité*[Un(V)]*[In(A)]*[Cosphi]*SQRT(3))/1000)*(tan(acos(Cosphi))), 2) AS [Qa(KVAR)]
    FROM LaminoirT1 GROUP BY [Désignation], [Quantité], [Pu(KW)], [Un(V)], [In(A)], [Cosphi]
    _______________________________________________________________________________________________
    Mais sa ne marche pas pouvez maider encore une fois de plus s'il vous plait

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

Discussions similaires

  1. Calcul période pour facture bimestrielle
    Par DenisePopp dans le forum Webi
    Réponses: 3
    Dernier message: 02/06/2015, 14h05
  2. algorithme de calcul du courant dans un réseau électrique
    Par jerry tekobon dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 14/06/2013, 08h00
  3. Fonction de calcul de prix (facture) dans un tableau
    Par jeffer dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 13/02/2012, 09h18
  4. Réponses: 9
    Dernier message: 02/05/2006, 22h17

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