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

Langage SQL Discussion :

UNION qui ne fonctionne pas


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut [RESOLU]UNION qui ne fonctionne pas
    mot clés : POSTGRES,UNION,CAST

    bonjour,

    j'ai un problème avec une requête où il y a un union

    je pense voir d'où vient le problème mais je ne sais pas comment le résoudre:

    première requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    select distinct nom_nom,nom_version,nom_pro_num,nom_mar_num,log_cpu_num,log_see_num,lic_num,lic_num_serie,log_num,nom_num,log_log_num 
    into temp l5 
    from $tablelic,$tablelog,nom_logiciel 
    where $selection $champ>='$valeur'
     and lic_log_num=log_num 
    and log_nom_num=nom_num order by $tri");
    celle-là a l'air de bien passer

    Seconde requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select nom_nom,nom_version,nom_pro_num,nom_mar_num,log_cpu_num,log_see_num,0 as lic_num ,'' as lic_num_serie,log_num,nom_num,log_log_num 
    into temp l6 
    from logiciel,nom_logiciel 
    where $selection $champ>='$valeur' 
    and log_nom_num=nom_num and log_log_num>0"
    celle-là passe aussi mais je pense que le problème vient de là

    Troisième requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from l5 UNION select * from l6 order by $tri
    là erreur de PHP mais je pense que le problème vient de la seconde requête

    dans la seconde requête, la chose qui a l'air de le géner c
    j'ai essayé avec un '0 as' mais c pas mieux
    c champ n'existe pas dans les tables de ma seconde requête mais pour le UNION je dois avoir autant de champ dans les deux requêtes...

    comment puis-je faire?

    merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    j'ai essayé avec un '0 as' mais c pas mieux
    ce serait pas plutôt ?

  3. #3
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    je l'ai mis en '' pour les besoins du message mais j'ai essayé

    message de Postgres comme quoi le type int4 et text ne sont pas compatible; ça semble normal

    même message que d'habitude

    en fait que doit-on mettre à la place du pour faire l'union comme on metpour les union sur des nombres?

  4. #4
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    assure toi que les types de variables sont les memes, et que dans le cas des champs texte, ils ont la meme taille.

    ce qui signifie pour lic_num_serie : si dans la première requete c'est un int , utilise '0 as ...', et dans la plupart des possibilités, tu devra faire un cast ... exemple (syntaxe Interbase, je ne suis pas certain de la syntaxe des autres SGBD) : CAST( ' ' AS CHAR[32]) AS lic_num_serie, ou char[32] serait le type de lic_num_serie de la 1ere requete. Le cast risque aussi d'etre nécéssaire si le type est booléen , flottant , etc ... bref, ça ne coute pas grand chose de le metre

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 51
    Points : 93
    Points
    93
    Par défaut
    t'as essayé avec une lettre, un mot quelconque ? genre
    juste pur voir si c'est bien le problème.

  6. #6
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    ouais j'ai et j'ai comme message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Function 'text(unknown)' does not exist Unable to identify a function that satisfies the given argument types You may need to add explicit typecasts
    et avec et j'ai comme message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    query failed: ERROR: Attribute 'b' not found
    [/code]

  7. #7
    Membre du Club
    Inscrit en
    Mars 2003
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 44
    Points : 49
    Points
    49
    Par défaut
    You may need to add explicit typecasts
    Comme quoi, je dois pas avoir tout a fait tort. tu as quel SGBD, et le cast se fait comment sous ce SGBD ? et quel est le type de données de lic_num_serie (dans la requete N°1)

  8. #8
    Membre régulier
    Inscrit en
    Avril 2003
    Messages
    121
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2003
    Messages : 121
    Points : 95
    Points
    95
    Par défaut
    SGBD:postgres
    CAST de lic_num_serie: text

    >>Gillou: j'ai essayé un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cast('' as text) as lic_num_serie
    et ça marche !!

    merci Gillou(avez pas vu ton message avant de poster mon dernier) et colomban pour votre aide

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

Discussions similaires

  1. background-image et js qui ne fonctionne pas
    Par trialrofr dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/02/2005, 11h45
  2. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08
  3. [SQL] Requête à jointure qui ne fonctionne pas
    Par Bensor dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/12/2004, 16h10
  4. Jointure externe qui ne fonctionne pas
    Par Guizz dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/02/2004, 12h26
  5. CREATEFILEMAPPING qui ne fonctionne pas???
    Par Jasmine dans le forum MFC
    Réponses: 2
    Dernier message: 06/01/2004, 19h33

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