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 :

[SQLSERVER 2K] Problème CAST TEXT dans une requete avec DISTINCT


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut [SQLSERVER 2K] Problème CAST TEXT dans une requete avec DISTINCT
    bonjour,

    J'effectue cette requête :
    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
    SELECT 
     
    DISTINCT CD_FAM_PROF,
    CD_DOM_PROF,
    CD_METIER,
    LB_METIER,
    CAST('' AS TEXT) AS CONDEX_METIER,
    CAST(0 AS NUMERIC(13,2)) AS SAL_MINI,
    CAST(0 AS NUMERIC(13,2)) AS SAL_MOY,
    CAST(0 AS NUMERIC(13,2)) AS SAL_MAX,
    CAST('' AS TEXT) AS CMT_METIER,
    CAST('EURO' AS CHAR(10)) AS CD_DEVISE,
    CAST(GETDATE() AS DATETIME) AS DT_OUVERT,
    CAST(NULL AS DATETIME) AS DT_FERME
     
    FROM matable
    Et j'ai un message d'erreur par rapport au CAST et au champs de type TEXT.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Server: Msg 8163, Level 16, State 3, Line 1
    The text, ntext, or image data type cannot be selected as DISTINCT.
    Les champs CONDEX_METIER et CMT_METIER sont de type TEXT, je dois obligatoirement les CASTés en TEXT.

    Quelqu'un aurait une solution ?

    cordialement

  2. #2
    Membre chevronné

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2007
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Août 2007
    Messages : 1 216
    Points : 1 758
    Points
    1 758
    Par défaut
    Idée : faire ton select distinct en utilisant du varchar et dans un select au dessus, reprendre ta liste de champs et le caster en text tes champs varchar.

    Ton distinct portera sur du varchar et non plus du text et tu récuperera pas de doublons dans ton select supérieur vu que tu appliqueras le distinct dans le subselect.

  3. #3
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 172
    Points : 72
    Points
    72
    Par défaut
    C'est une idee pas bete du tout !

    Mais comme je mets le champ a vide, j'ai testé avec du varchar(255) et ça marche.
    Pour la suite je testerai ton idée

    Cordialement

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

Discussions similaires

  1. Probléme de jointure dans une requete avec UNION
    Par MissOleana dans le forum Requêtes
    Réponses: 1
    Dernier message: 28/11/2013, 15h45
  2. Problème "Justification" texte dans une sheridan dbgrid
    Par Kitty-cat dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 25/02/2008, 10h28
  3. Problèmes de calcul dans une requete imbriquée
    Par LeNovice dans le forum Langage SQL
    Réponses: 6
    Dernier message: 21/03/2007, 16h56
  4. [débutant] problème de condition dans une requete
    Par banker dans le forum Access
    Réponses: 5
    Dernier message: 22/03/2006, 13h52
  5. [VBA-E]problème de date dans une requete
    Par isa21493 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 24/02/2006, 11h45

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