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 Taux de Rebuts


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Septembre 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 15
    Par défaut Calcul de Taux de Rebuts
    Bonsoir,

    J'ai dans un base (SQL Server 2008 R2) une table d'enregistrements comptant entre autres les champs suivants :

    - ID_Enregistrement ---> INT auto increment
    - DateHeure
    - Type_Pièces ---> INT (lien autre table)
    - Quantité_Pièces ---> INT
    - Opérateur ---> INT (lien autre table)
    - Qualité_Pièces ---> CHAR(1) / R=Rebut / B= Bonne / P = Retouchée

    Une partie des déclaration est effectuée en automatique (pièces sorties de la chaine peinture) avec une quantité pièce définie par lot et une qualité_pièces à 4.

    Lors de l'affectation ensuite par les opérateurs de pièces retouchées ou retouchées, j'affecte un -1 bonne et un +1 Rebut ou un +1 retouchée.

    Je voudrais obtenir mon taux de rebut.

    Pour le moment, j'ai créé 3 vues :
    0 - table d'enregistrement
    1 - vue pour calcul des bonnes (SUM (Quantité) et WHERE Qualité_Pièces = 'B')
    2 - vue pour calcul des rebuts (SUM (Quantité) et WHERE Qualité_Pièces = 'R')
    3 - calcul du taux de rebut (Vue 3 / Vue 2)


    Existe-t-il un moyen plus simple et plus rapide (délai de calcul = environ 5sec) ???

    D'avance merci de vos réponses éclairées.

    @xvier

  2. #2
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    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 197
    Billets dans le blog
    1
    Par défaut
    Au lieu de passer par trois vues, tu peux essayer de tout faire une une seule requête.

    Ceci dit, le gain devrait être marginal.

    La méthode me semble bonne pour le calcul, je ne vois pas comment tu pourrais faire autrement.

    Les index sont-ils bien utilisés ? Quelle est la volumétrie ?

  3. #3
    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,

    Vous pouvez essayer ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    WITH
    	CTE_REBUT AS
    	(
    		SELECT	SUM(Quantité_Pièces) AS quantite_piece_rebut
    		FROM	dbo.pieces
    		WHERE	Qualité_Pièces = 'R'
    	)
    SELECT		SUM(Quantité_Pièces) / CR.quantite_piece_rebut
    FROM		dbo.pieces AS P
    CROSS JOIN	CTE_REBUT AS CR
    WHERE		P.Qualité_Pièces = 'B'
    Mais je ne sais pas si le gain sera énorme ...
    Pouvez-vous donner :

    - la définition des index de la table
    - le plan réel d'exécution des deux requêtes (CTRL + M avant d'exécuter les deux requêtes)
    - les statistiques d'activité disque généré (SET STATISTICS IO avant l'exécution des requêtes; le résultat se trouvera dans l'onglet Messages)
    - la distribution des valeurs dans la colonne Qualité_Pièces, c'est-à-dire combien de lignes pour chaque statut
    - une idée de la quantité de modifications de données que la table subit par jour
    - si vous maintenez les index et les statistiques de la base de données

    @++

Discussions similaires

  1. créé un calcule de taux sous access en SQL
    Par neoxsat dans le forum Requêtes et SQL.
    Réponses: 11
    Dernier message: 22/02/2008, 12h09
  2. Comment calculé le taux d'occupation mémoire.
    Par gonadostimuline dans le forum C++
    Réponses: 7
    Dernier message: 12/12/2007, 15h45
  3. Comment calculer un taux horaire
    Par Christophe D. dans le forum Excel
    Réponses: 3
    Dernier message: 11/10/2007, 15h13
  4. calcul de taux de déviation d'un variable
    Par lamlouma dans le forum C#
    Réponses: 4
    Dernier message: 10/04/2007, 11h06
  5. Calcul du taux de consanguinité
    Par TheDarkLewis dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 18/04/2005, 14h30

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