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 :

Aidez moi à créer une vue


Sujet :

Développement SQL Server

  1. #1
    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 Aidez moi à créer une vue
    Bonjour à tous,

    Depuis hier je m’évertue à mettre en place une procédures stockées qui me tient encore en échec.
    J'ai deux tables reliées par un champ Num_ordr_PAX que j'arrive à decomposé en 2 données avec ces 2 selects
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (la date=select rtrim(substring(cod_assist_INAD,8,10))from T_INAD;
     le cod_vol=select rtrim(substring(cod_assist_INAD,0,7))from T_INAD).
    Il y a aussi cette jointure:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select a.Num_ordr_PAX,a.PAX_name,a.Num_Passport,a.desti_finale,a.Observ_PAX,b.Vols_INAD,b.Motifs from T_PAX as  a join T_INAD  b on a.Num_ordr_PAX=b.Num_ordr_PAX stance
    Je voudrais joindre cette jointure à ces 2 select pour en faire une vue où le champ cod_assist_INAD sera en paramètre d’entrée.

    Prière de m'aider.
    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:.

  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 : 42
    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
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Vous confondez ce qu'est une vue et ce qu'est une procédure stockée.

    Une vue vous retournera un ensemble de lignes basé sur une requête de type SELECT.
    Elle n'a aucune existence physique sauf si elle est indexée, et elle n'est pas paramétrable.
    En revanche on peut toujours la filtrer comme toute autre table, à l'aide de la clause WHERE.
    Enfin une vue retourne toujours un ensemble de lignes (notez que celui-ci peut être vide )

    Une procédure stockée est une suite d'instructions à exécuter, qui peut ou non :
    - retourner un ensemble de lignes
    - prendre des paramètres en entrée
    - affecter des valeurs à des paramètres de sortie (clause OUTPUT des paramètres)

    Dans les deux cas, le plan d'exécution est stocké dans le cache de procédures.

    'ai deux tables reliées par un champ Num_ordr_PAX que j'arrive à decomposé en 2 données avec ces 2 selects(la date=select rtrim(substring(cod_assist_INAD,8,10))from T_INAD;
    le cod_vol=select rtrim(substring(cod_assist_INAD,0,7))from T_INAD).
    Dans une table il y a des colonnes, dans un fichier il y a des champs.
    J'explique ici la différence. Cela peut vous paraître équivalent à chercher des poils sur les œufs, pourtant la différence est non négligeable.

    Ensuite la conception de votre table est fausse puisqu'elle ne respecte pas la première forme normale, selon laquelle les valeurs stockées dans les colonnes doivent être atomiques (insécables si vous préférez).J'espère donc qu'il s'agit d'une table dont vous vous servez pour réaliser des imports de données

    Vous pouvez créer des colonnes calculées (et éventuellement indexées) qui extraient automatiquement les valeurs comme vous le spécifiez dans des colonnes de la table.
    Si vous avez une procédure d'import, alors l'extraction de telles valeurs devrait être fait dans cette procédure.

    Dans l'état actuel des choses, si j'ai bien compris, votre procédure stockée devrait être :

    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
    CREATE PROCEDURE prc_maProcedure
    	@_cod_assist_INAD varchar(x)
    AS
    BEGIN
    	SET NOCOUNT ON
     
    	SELECT		a.Num_ordr_PAX
    			, a.PAX_name
    			, a.Num_Passport
    			, a.desti_finale
    			, a.Observ_PAX
    			, b.Vols_INAD
    			, b.Motifs
    			, RTRIM(SUBSTRING(b.cod_assist_INAD, 8, 10)) AS la_date
    			, RTRIM(substring(b.cod_assist_INAD,0,7)) AS cod_vol
    	FROM		dbo.T_PAX AS a
    	INNER JOIN	dbo.T_INAD b
    				ON a.Num_ordr_PAX = b.Num_ordr_PAX
    	WHERE		b.cod_assist_INAD = @_cod_assist_INAD
    END
    Vous devez remplacer le "x" de "@_cod_assist_INAD varchar(x)" par la largeur de la colonne cod_assist_INAD.

    N'oubliez jamais de qualifier les objets que vous utilisez par le nom du schéma auquel ils appartiennent.
    Par défaut c'est dbo, et si vous le précisez, cela évite à SQL Server de le rechercher dans les tables de méta-données

    @++

  3. #3
    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
    Merci pour ton conseil et ton aide. Tu as vu juste, j'ai confondu une vue et une procédures stockée. Merci pour ton aide.
    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:.

Discussions similaires

  1. aidez moi créer un fichier .htaccess
    Par hoangeric dans le forum Apache
    Réponses: 4
    Dernier message: 09/07/2006, 12h07
  2. [9iR2][PL/SQL] Comment créer une vue dans un package ?
    Par mainecoon dans le forum Oracle
    Réponses: 6
    Dernier message: 22/02/2006, 08h10
  3. [requète sql] Créer une vue ordonnée
    Par gangsoleil dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/01/2006, 18h34
  4. Créer une vue avec des requêtes UNION ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/04/2005, 12h37
  5. Créer une vue pour trier une requete UNION ?
    Par Etienne Bar dans le forum SQL
    Réponses: 3
    Dernier message: 03/01/2003, 20h22

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