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 :

Calculer CPK flottant et introduire la valeur dans une table


Sujet :

Développement SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Points : 22
    Points
    22
    Par défaut Calculer CPK flottant et introduire la valeur dans une table
    Bonjour ,
    Je travail avec SQL server 2008 et un OPC server liée à une CPU Siemens.

    En ce moment j'ai :

    Une table BHD dont une ligne est crée a chaque démarrage des statistique ( variable plc). Cette table contient un auto incrément.
    Une table DLG il s'agit d'un data logging de 0.1 sec.
    J'ai une fonction scalar pour le CPK

    Ce que j'ai déjà fait : une vue qui fait appel a la fonction CPK et d'autre variable ...

    Ce que j'aimerais réalisé c'est une table avec un colonne qui contient mon CPK en temps réel . Mais j'ignore comment crée une table avec une valeur calculée d'une fonction, dois-je le faire avec procédure stockée ou avec une vue c'est réalisable ?

    Ma fonction CPK
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE function [dbo].[fnCpK] (@USL real,@LSL real, @AvgPV real, @StdevPV real)
    returns real
    begin
    	declare @CpK real
    	declare @CpL real
    	declare @CpU real
     
    		if @StdevPV=0 set @CpK = 888
     
    		else begin
     
    			set @CpU = (@USL - @AvgPV)/(3*@StdevPV)
    			set @CpL = (@AvgPV - @LSL)/(3*@StdevPV)
     
    			if @CpU<=@CpL 
    			set @CpK = @CpU
    			else 
    			set @CpK = @CpL
     
    		end
     
    	return @CpK
     
    end

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 772
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 772
    Points : 52 732
    Points
    52 732
    Billets dans le blog
    5
    Par défaut
    Oui, une vue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE VIEW ...
    AS
    SELECT CASE WHEN StdevPV = 0 THEN 888
                WHEN (USL - AvgPV)/(3*StdevPV) <= (AvgPV - LSL)/(3*StdevPV) THEN (USL - AvgPV)/(3*StdevPV)
                ELSE (AvgPV - LSL)/(3*StdevPV)
           END AS CPK
    FROM   ...
    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre à l'essai
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Août 2016
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Août 2016
    Messages : 29
    Points : 22
    Points
    22
    Par défaut merci votre information
    Merci de m'aider

    Comment dois je faire pour quel le résultats de la vue sois stockée dans une table ( je créé une nouvelle table "statistique" ), c'est possible de faire cela ?
    Car le problème il faut que le résultat sois presque en temps réel donc que qui veut dire que ma table dois avoir à a chaque fois une nouvelle colonne toutes les X seconde?

  4. #4
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Février 2010
    Messages : 4 154
    Points : 7 403
    Points
    7 403
    Billets dans le blog
    1
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    alter matable
    add CPK as (
           CASE WHEN StdevPV = 0 THEN 888
                WHEN (USL - AvgPV)/(3*StdevPV) <= (AvgPV - LSL)/(3*StdevPV) THEN (USL - AvgPV)/(3*StdevPV)
                ELSE (AvgPV - LSL)/(3*StdevPV)
           END
    )

    Il faut en revanche que USL, AvgPV, LSL, etc. soient dans la même table.
    On ne jouit bien que de ce qu’on partage.

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

Discussions similaires

  1. [VB6]recherche d'une valeur dans une table access
    Par fahmichebaane dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/04/2006, 15h26
  2. [VBA-A] Récupérer une valeur dans une table Access
    Par Dude2006 dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/04/2006, 23h56
  3. [MySQL] Problème d'initialisation de la valeur dans une table
    Par priazu dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 27/02/2006, 02h00
  4. Insertion valeure dans une table
    Par krfa1 dans le forum Langage SQL
    Réponses: 6
    Dernier message: 29/03/2005, 10h50
  5. Test d'existence d'une valeur dans une table
    Par dleu dans le forum Bases de données
    Réponses: 9
    Dernier message: 29/12/2004, 10h38

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