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 :

Procédure stockée & fonction


Sujet :

Développement SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 44
    Points
    44
    Par défaut Procédure stockée & fonction
    bonjour,
    voila j'ai un script asp.net v4 (Vb) qui permet de calculer des prix à l'aide de plusieurs tables : article, client, remise, famille article...
    j'aimerais faire ce calcul plutôt côté Sql serveur via une procédure stocker (éviter trop d'aller-retour entre le serveur web et Sql serveur)
    je ne sais pas trop comment mi prendre : voila de le résumer de mon principe de calcul

    dans l'ordre de priorité, on s'arrête dès qu'une requête trouve une valeur :

    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
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Début de requête commune à toutes les requêtes ci-dessous :
     
    SELECT TOP(1) AC_RemisePalier.Remise, AC_RemisePalier.PrixNet 
    FROM AC_RemisePalier 
    INNER JOIN AC_Remisetarif ON AC_Remisetarif.IDRemisetarif = AC_RemisePalier.IDRemisetarif 
    WHERE (AC_RemisePalier.PrixNet>0 OR AC_RemisePalier.Remise>0) 
    AND ((AC_Remisetarif.ClientFournisseur='C') AND (AC_RemisePalier.ClientFournisseur='C'))
     
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    1.
    AND ((AC Remisetarif. IDArticle=@id article) AND (AC Remisetarif. ID Article>0)) AND ((AC Remisetarif. IDClient=@id client) AND (AC Remisetarif. ID Client>0))
    2.
    AND ((AC Remisetarif. IDFAMILLETARIFART=@id article famille) AND (AC Remisetarif. IDFAMILLETARIFART>0)) AND ((AC Remisetarif. IDClient=@id client) AND (AC Remisetarif. ID Client>0))
    3.
    AND ((AC Remisetarif. IDArticle=@id article) AND (AC Remisetarif. ID Article>0)) AND ((AC Remisetarif. IDFAMILLETARIFCLIENT=@id client famille) AND (AC Remisetarif. IDFAMILLETARIFCLIENT>0)) 
     
    4...... 8 "requête"
    je vois pas comment arrêter la requête des quelle trouve une valeur AC_RemisePalier.Remise, AC_RemisePalier.PrixNet afin d’éviter de toute les passer 8 au total

    j'ai peux être penser de faire une fonction par requête qui me retourne si oui ou non une requête retourne une valeur.

    merci de votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Full-stack
    Inscrit en
    Novembre 2010
    Messages
    372
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Full-stack

    Informations forums :
    Inscription : Novembre 2010
    Messages : 372
    Points : 489
    Points
    489
    Par défaut
    Bonjour,

    D'abord, il faire un tour sur cette page où sont définies les règles de postage du forum. Et surtout, s'habituer à l'utilisation des balises codes #.

    Tu veux faire un calcul, mais je ne vois aucune opération de multiplication, addition, soustraction ou de division dans ta requête. Il serait bon que tu nous fournisse les DDL des tables concernés tout en prenant soin d'indiquer ta méthode de calcul choisie.

    Merci.
    La recherche de la connaissance est une Lumière qui apaise le Cœur.
    Si une réponse vous a été utile , n'oubliez pas de voter en cliquant sur:.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 761
    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 761
    Points : 52 547
    Points
    52 547
    Billets dans le blog
    5
    Par défaut
    Avec une seule requête ayant un CASE dans le SELECT pour chacune de vos conditions différentes renvoyant 1, 2, 3 ou 4 et en sous requête en retournant le MIN.

    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/ * * * * *

Discussions similaires

  1. Réponses: 9
    Dernier message: 25/08/2021, 14h52
  2. Réponses: 4
    Dernier message: 24/10/2008, 15h07
  3. Procédure stockée ou fonction retournant une table
    Par sessime dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 10/04/2008, 23h22
  4. procédure stockée et fonction max
    Par hermine dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 05/07/2007, 13h51
  5. Procédure stockée et fonction max
    Par nic413 dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 02/06/2006, 17h01

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