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 :

générer le numero de la ligne dans une vue


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut générer le numero de la ligne dans une vue
    Bonjour,

    Dans une vue composé de 3 unions, je voudrais générer le nombre de la ligne générée. y'a t'il une fonction pour le faire?? il semble que l'on peut utiliser count(*), mais je crois que ça ralenti l'exécution de la requete, et l'union me pause un probleme.



    le code de la vue:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ALTER VIEW [dbo].[MA_VUE]
    AS
     
    SELECT a,b,c FROM A
    UNION ALL
    SELECT a,b,c FROM  B
    UNION ALL
    SELECT xx as a, yy as b, xy as c FROM C

  2. #2
    Expert confirmé
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Par défaut
    Bonjour,

    Tu peux essayer ceci si tu es en version 2005 ou plus :

    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
     
    ALTER VIEW [dbo].[MA_VUE]
    AS
     
    SELECT 
     ROW_NUMBER() OVER(ORDER BY (SELECT 0)) AS num,
     a,
     b,
     c
    FROM
    (
     SELECT a,b,c FROM A
     UNION ALL
     SELECT a,b,c FROM  B
     UNION ALL
     SELECT xx AS a, yy AS b, xy AS c FROM C
    ) AS t
    ++

  3. #3
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Je suis en en SQL Server 2005, il se trouve que 'OVER' n 'est pas pris en compte, je pense que:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select rank=count(*), ...
    devrait marcher, juste que j'ai beaucoup de colonne et je ne veux pas faire trop de modifications sur la vue, je vais contourner le problème autrement.

    Merci..

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT rank=count(*), ...
    Cette syntaxe est obsolète depuis de nombreuses années ! Il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT count(*) AS  rank, ...
    La clause OVER est parfaitement supportée par SQL Server à partir de la version 2005.

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

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    mon SQL SERVER 2005 n'a pas accepté le OVER, peut être juste l'assistant de modification de la vue, je vais tester directement le code.

    Merci.
    A+

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    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 : 22 010
    Billets dans le blog
    6
    Par défaut
    On écrit pas des requêtes SQL avec un outil graphique !!!!

    A peine 10% du SQL peut être fait dans ce genre d'outil qui nivelle pas le bas les possibilités....

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

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

Discussions similaires

  1. numero(index) de ligne dans une grille xaml
    Par Rock01 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 17/02/2011, 21h39
  2. afficher le numero de la ligne dans une colonne
    Par maysa dans le forum Requêtes
    Réponses: 14
    Dernier message: 24/12/2007, 09h02
  3. N° de ligne dans une table triée ?
    Par andremarco dans le forum Langage SQL
    Réponses: 6
    Dernier message: 24/06/2004, 17h19
  4. Selectionner ligne dans une ClistCtrl
    Par fr66 dans le forum MFC
    Réponses: 2
    Dernier message: 03/05/2004, 14h58
  5. copier une ligne dans une autre table
    Par BoeufBrocoli dans le forum SQL
    Réponses: 5
    Dernier message: 24/10/2003, 22h59

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