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

MS SQL Server Discussion :

Recuperer les champs de deux SELECT dans une procedure stockée


Sujet :

MS SQL Server

  1. #1
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut Recuperer les champs de deux SELECT dans une procedure stockée
    Bonsoir,

    Es-ce que je peux effectuer deux SELECT provenant de tables différentes comme suit ? :
    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
     
    CREATE PROCEDURE sp_select_creance
    (
    @CodeUsager varchar(10)
    )
     
    AS
    BEGIN
    SELECT
     SUM((table_releve.montant)*table_ligne_taxe.taux_taxe/100) AS TotalTaxe,
     SUM(DISTINCT table_releve.montant) AS TotalHt
     
     FROM
     table_facture
     
      LEFT JOIN table_releve ON (table_facture.code_usager = table_releve.code_usager)
      LEFT JOIN table_ligne_taxe ON (table_facture.id_fact = table_ligne_taxe.id_fact)
      WHERE (table_facture.code_usager=@CodeUsager)
     
     SELECT SUM(montant_reg) AS TotalReglement FROM table_reglement
     WHERE (table_reglement.code_usager=@CodeUsager)
     
     
    END
    Le problème est que je ne peux récuperer que les champs de selection d'aggregation du 1er SELECT et pas du 2eme.

    Je vous remercie pour votre aide.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Août 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

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

    Informations forums :
    Inscription : Août 2006
    Messages : 730
    Points : 923
    Points
    923
    Par défaut
    cherche un truc comme ca

    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
    CREATE PROCEDURE sp_select_creance
    (
    @CodeUsager varchar(10)
    )
     
    AS
    BEGIN
    SELECT
     SUM((table_releve.montant)*table_ligne_taxe.taux_taxe/100) AS TotalTaxe,
     SUM(DISTINCT table_releve.montant) AS TotalHt,SUM(montant_reg) AS TotalReglement 
     
     FROM
     table_facture
     
      LEFT JOIN table_releve ON (table_facture.code_usager = table_releve.code_usager)
      LEFT JOIN table_ligne_taxe ON (table_facture.id_fact = table_ligne_taxe.id_fact)
      LEFT OUTER JOIN table_reglement on table_reglement.code_usager=@CodeUsager
     
      WHERE (table_facture.code_usager=@CodeUsager)
     
     
     
    END

  3. #3
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonjour et merci serge. J'ai tester ton code mais il ne renvoi pas les données attendues. Par contre, j'ai un trouver un remède à mon code il devient comme suit :
    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
    29
     
    CREATE PROCEDURE sp_select_creance
    (
    @CodeUsager varchar(10)
    )
     
    AS
     
    DECLARE @TotalHt Money
    DECLARE @TotalTaxe Money
    DECLARE @TotalReglement Money
     
     
    BEGIN
    SELECT @TotalTaxe = SUM((table_releve.montant)*table_ligne_taxe.taux_taxe/100) ,@TotalTaxe = SUM(DISTINCT table_releve.montant) 
     
     FROM
     table_facture
     
      LEFT JOIN table_releve ON (table_facture.code_usager = table_releve.code_usager)
      LEFT JOIN table_ligne_taxe ON (table_facture.id_fact = table_ligne_taxe.id_fact)
     
      WHERE (table_facture.code_usager=@CodeUsager)
     
     SELECT @TotalReglement = SUM(montant_reg) FROM table_reglement  WHERE (table_reglement.code_usager=@CodeUsager)
     
    SELECT  @TotalHt AS TotalHt, @TotalTaxe AS TotalTaxe,  @TotalReglement AS TotalReglement
     
    END
    Sauf qu'apparement il semble trop charger mais il fonctionne bien et en attendant de trouver mieux

Discussions similaires

  1. [DATA] Recuperer les champs de ta table dans une macro variable
    Par Deciprog dans le forum SAS Base
    Réponses: 5
    Dernier message: 04/05/2010, 11h05
  2. Relier les champs de deux tables dans une interface graphique
    Par laurentlorient dans le forum Débuter
    Réponses: 1
    Dernier message: 26/04/2009, 22h34
  3. un select dans une procedure stockée
    Par alassane0101 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 16/07/2008, 18h49
  4. Réponses: 1
    Dernier message: 24/08/2006, 21h07
  5. Comment recuperer les info d'un formulaire dans une boite de dialogue
    Par frutix dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/05/2006, 11h42

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