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 :

Nom de colonne dans une @variable


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 45
    Points : 46
    Points
    46
    Par défaut Nom de colonne dans une @variable
    Bonsoir à tous ,

    Je souhaite pouvoir intégrer le nom d'une colonne dans une variable car celle ci est differente en fonction des bases ou j'execute cette requete.

    Donc voici mon code :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
     
    DECLARE 
    @Free1 as varchar(20),
    @Free2 as varchar(20),
    @Free3 as varchar(20)
     
    SELECT @Free1 = Free1 from x37 where LanguageId = '3' AND PersonType = '1'
    SELECT @Free2 = Free2 from x37 where LanguageId = '3' AND PersonType = '1'
     
     
    Select
     
    x.PersonId as 'Id'
    ,x.PersonName as 'Nom'
    ,x.Initials as 'Prénom'
    ,CASE 
    WHEN x.PersonType = '1' then 'Employe' 
    WHEN x.PersonType = '2' then 'Visiteur' 
    WHEN x.PersonType = '3' then 'Prestataire' 
    WHEN x.PersonType = '5' then 'Employe temporaire' 
    end as 'Type de personne'
    ,x.TelephoneNr as 'N° de téléphone'
    ,d.DepartmentName as 'Département'
    ,x.Firm as 'Société'
    ,x.StartValidity as 'Début de validité'
    ,x.EndValidity AS 'Fin de validité'
    ,x.StartEmploymentDate as 'Début de contrat'
    ,x.EndEmploymentDate as 'Fin de contrat'
    ,x.Remarks as 'Remarque'
    ,x.VisitorOf as 'Contact'
    ,x.PersonNr as 'N° Personnel'
    ,x.BadgeId as 'N° de badge'
    ,CASE 
    WHEN b.BadgeStatus = '1' then 'Affecté'
    WHEN b.BadgeStatus = '3' then 'Bloqué' 
    WHEN b.BadgeStatus = '4' then 'Defectueux'
    WHEN b.BadgeStatus = '5' then 'Perdu'
    WHEN b.BadgeStatus IS NULL then ''
    end as 'Statut du badge'
    ,pr.Description as 'Profil'
    ,x.[Free1] as '@Free1'				
    ,x.[Free2] as '@Free2'
    ,x.[Free3]
    ,x.[Free4]
    ,x.[Free5]
    ,x.[Free6]
    ,x.[Free7]
    ,x.[Free8]
    ,x.[Free9]
    ,x.[Free10]
    ,x.[Free11]
    ,x.[Free12]
    ,x.[Free13]
    ,x.[Free14]
    ,x.[Free15]
    ,x.[Free16]
    ,x.[Free17]
    ,x.[Free18]
    ,x.[Free19]
    ,x.[Free20]
    ,x.[Free21]
    ,x.[Free22]
    ,x.[Free23]
    ,x.[Free24]
    ,x.[Free25]
    ,x.[Free26]
    ,x.[Free27]
    ,x.[Free28]
    ,x.[Free29]
    ,b.EventDateTimeStamp AS 'Dernier passage'
    --,t.Name as 'Groupe'						-- A activer pour les Groupes supplementaires
    --,h.Description as 'Plagehoraire'				-- A activer pour les Groupes supplementaires
     
    from x36 x 
     
    --LEFT JOIN x13 p ON p.PersonId=x.PersonId		-- A activer pour les Groupes supplementaires
    --LEFT JOIN x06 t ON p.AccGroupId=t.AccGroupId		-- A activer pour les Groupes supplementaires
    --LEFT JOIN x16 h ON p.TimeDayzoneId=h.TimeDayzoneId	-- A activer pour les Groupes supplementaires
    LEFT JOIN x53 d ON x.DepartmentId = d.DepartmentId
    LEFT JOIN x48 pr ON x.ProfileId = pr.ProfileId
    LEFT JOIN x12 b ON x.BadgeId = b.BadgeId
     
    order by x.PersonName,x.Initials,x.BadgeId
    Au niveau de la ligne suivante je souhaite avoir le nom de colonne de ma variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ,x.[Free1] as '@Free1'
    Mais le faite d'enlever les ' , une erreur de requete m'est signalé.

    Merci par avance pour vos réponses

    Bonne soirée à vous tous

  2. #2
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Il n'est pas possible de changer dynamiquement le nom d'une colonne sans passer par du SQL dynamique.
    Un exemple ici.

Discussions similaires

  1. nom de colonne dans une variable
    Par cyclone_yas dans le forum SQL
    Réponses: 12
    Dernier message: 27/12/2006, 10h41
  2. [XSLT] Attribut dont le nom est stocké dans une variable ?
    Par Xfennec dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 15/03/2006, 11h20
  3. Shell: récupérer le bon nom de fichier dans une variable
    Par claralavraie dans le forum Linux
    Réponses: 1
    Dernier message: 10/01/2006, 11h45
  4. Réponses: 7
    Dernier message: 25/10/2005, 15h19
  5. Noms de colonne dans une colonne
    Par Digirom dans le forum Langage SQL
    Réponses: 14
    Dernier message: 23/04/2004, 11h51

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