Bienvenue! Inscrivez-vous et rejoignez notre communauté :)
  • Login:

Bienvenue sur Forum SIG - Systèmes d'Information Géographique et Géomatique.

Bienvenue sur le forumSIG. S'il s'agit de votre première visite, assurez vous de faire une recherche préalable dans les FAQ SIG. Vous devez vous inscrire avant de pouvoir poster.

Affichage des résultats 1 à 5 sur 5
  1. #1

    Date d'inscription
    mai 2005
    Localisation
    Lyon
    Âge
    34
    Messages
    71

    Unhappy Comparer un integer avec un integer[]

    Bonjour,

    J'ai des difficultés pour obtenir un résultat d'une comparaison entre un integer et un integer[] !

    Je cherche à afficher le résultat d'une sélection d'enregistrements dont l'id serait dans une liste de valeurs définies par une requête. La liste de valeurs est en integer[] suite à l'utilisation de la fonction array_agg, or mon identifiant de base est en integer...

    Code:
    select raisonsociale
    from texploitations
    where idexploitation in (SELECT array_agg(idexploitation) FROM tcomplementdynamiqueexploitation where idattributdynamique = 242)
    Message d'erreur :
    ERREUR: l'opérateur n'existe pas : integer = integer[]LINE 3: where idexploitation in (
    ^
    HINT: Aucun opérateur ne correspond au nom donné et aux types d'arguments.
    Vous devez ajouter des conversions explicites de type.
    ********** Erreur **********
    ERREUR: l'opérateur n'existe pas : integer = integer[]
    État SQL :42883
    Astuce : Aucun opérateur ne correspond au nom donné et aux types d'arguments.
    Vous devez ajouter des conversions explicites de type.
    Caractère : 65
    J'ai essayé de forcer mon identifiant de base (idexploitation::integer[]) à tout hasard mais cela ne fonctionne pas, la conversion n'est pas possible.
    J'ai aussi essayé de remplacer le IN par un =ANY mais sans résultat non plus !

    Quelqu'un aurait-il une astuce ?
    Merci par avance

  2. #2

    Date d'inscription
    août 2011
    Localisation
    Paris > Strasbourg
    Emploi
    Chargé de mission SIG
    Âge
    33
    Messages
    1 368

    Par défaut Re : Comparer un integer avec un integer[]

    Et un :
    Code:
    SELECT tex.raisonsociale
    FROM texploitations tex,
    (SELECT array_agg(idexploitation) AS idexp FROM tcomplementdynamiqueexploitation where idattributdynamique = 242) agg
    WHERE tex.idexploitation = ANY (agg.idexp)

  3. #3

    Date d'inscription
    mai 2005
    Localisation
    Lyon
    Âge
    34
    Messages
    71

    Par défaut Re : Comparer un integer avec un integer[]

    Merci encore, je n'avais pas pensé à cette syntaxe là ! Et cela fonctionne, j'ai bien mes 546 enregistrements qui correspondent à la restriction voulue.

    Cependant, je souhaite intégrer cette requête dans une fonction et donc le 'tex.idexploitation' a vocation à devenir un paramètre de ma fonction.
    Quand je lance la requête en modifiant 'tex.idexploitation' par une valeur de ma liste, au lieu d'obtenir 1 seule exploitation, j'obtiens la liste complète de mes 10000 exploitations !
    Code:
    SELECT tex.raisonsociale
    FROM texploitations tex,
    (SELECT array_agg(idexploitation) AS idexp FROM tcomplementdynamiqueexploitation where idattributdynamique = 242) agg
    WHERE 5824 = ANY (agg.idexp)
    Pourquoi ??

  4. #4

    Date d'inscription
    août 2011
    Localisation
    Paris > Strasbourg
    Emploi
    Chargé de mission SIG
    Âge
    33
    Messages
    1 368

    Par défaut Re : Comparer un integer avec un integer[]

    Car la table 'texploitations' n'est plus filtrée.
    Il faudrait faire un code du type :
    Code:
    SELECT tex.raisonsociale
    FROM texploitations tex,
    (SELECT array_agg(idexploitation) AS idexp FROM tcomplementdynamiqueexploitation where idattributdynamique = 242) agg
    WHERE tex.idexploitation = ANY (agg.idexp)
    AND tex.idexploitation = 5824

  5. #5

    Date d'inscription
    mai 2005
    Localisation
    Lyon
    Âge
    34
    Messages
    71

    Par défaut Re : Comparer un integer avec un integer[]

    Ça paraît si simple !
    Merci, maintenant il faut que j'arrive à l'intégrer dans un if dans ma fonction, je sens que cela ne va pas être si simple ^^

 

 

Discussions similaires

  1. [MapInfo 7.x] Comparer les différences d'une même table géoréférencé avec celle non géoréférencée
    Par Létie dans le forum Assistance Technique
    Réponses: 6
    Dernier message: 25/06/2014, 13h37
  2. [ArcGIS 9.x] Comparer une table à elle-même
    Par Leehan dans le forum Programmation
    Réponses: 8
    Dernier message: 20/08/2012, 11h55
  3. [TalendOS 4.1] Convertir String en Integer via ?
    Par Le Docteur dans le forum Assistance et Programmation
    Réponses: 9
    Dernier message: 20/05/2011, 20h14
  4. [Access 2003] Comparer une valeur de formulaire avec une valeur de table
    Par Alfredo dans le forum Assistance et Programmation
    Réponses: 1
    Dernier message: 27/05/2009, 09h14
  5. [ArcGIS 9.x] Comparer 2 couches de points XYZ
    Par Typhaine dans le forum Assistance Technique
    Réponses: 2
    Dernier message: 11/12/2008, 10h38

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •