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

WinDev Discussion :

Requete pour selectionner un ID qui peut avoir plusieurs valeurs [WD17]


Sujet :

WinDev

  1. #1
    Membre régulier Avatar de dany13
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Points : 100
    Points
    100
    Par défaut Requete pour selectionner un ID qui peut avoir plusieurs valeurs
    Bonjour,

    Je bloque sur un problème qui normalement ne devrait pas en être un mais l’éditeur de requête Windev ne veut rien savoir!!

    Ce que j'aimerais faire est exactement ce cas présent

    Exemple :
    ID_VOITURE | ID_MODELE
    205 | K_10
    208 | P_50
    205 | R_70
    306 | K_10
    306 | R_70
    je souhaite sélectionner tous les ID_VOITURE qui ont comme modèle K_10 ET R_70 (et avoir ainsi en resultat : 205 et 306)

    Cette requête devrait répondre à ma problématique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT ID_VOITURE
    FROM VOITURE_MODELE
    WHERE ID_MODELE IN ('K_10', 'R_70')
    GROUP BY ID_VOITURE
    HAVING count(DISTINCT ID_MODELE) = 2
    sauf qu'à l'execution, windev me met l'erreur suivante :
    La requête n'a pas pu être exécutée : la taille de l'enregistrement a changée.

    H.E.L.P!!! C'est quoi que je fais mal???

    Merci pour vos lumières
    Carpe Diem : Profitez du moment présent
    La connaissance non partagée n'a pas vraiment son utilité

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Peut-être une piste:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT ID_VOITURE,count(*)
    FROM VOITURE_MODELE
    WHERE ID_MODELE IN ('K_10', 'R_70')
    GROUP BY ID_VOITURE
    HAVING count(DISTINCT ID_MODELE) = 2

    Sinon avec une jointure:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select v1.id_voiture
    from voiture_modele as v1
    inner join voiture_modele as v2 on v1.id_voiture = v2.id_voiture
    where v1.id_modele = 'K_10' and b2.id_modele = 'R_70'

    Ou avec SqlExec, ou hExecuteRequeteSql + hRequeteSansCorrection...

    Tatayo.

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Comme ça, à froid, je vois pas l'intérêt du HAVING dans ce contexte....

    ...donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT ID_VOITURE,count(*)
    FROM VOITURE_MODELE
    WHERE ID_MODELE IN ('K_10', 'R_70')
    GROUP BY ID_VOITURE
    me semble suffisant....
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    michel.souris => le having sert à ne récupérer que les ID_VOITURE pour lesquels on trouve K_10 et R_70 dans ID_MODELE.

    Tatayo.

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    Ok ! j'avais pas bien compris son pb ! dans ce cas ta proposition avec jointure me semble être le plus propre
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  6. #6
    Membre régulier Avatar de dany13
    Inscrit en
    Mai 2004
    Messages
    168
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 168
    Points : 100
    Points
    100
    Par défaut
    Merci tatayo, j'étais en train d'expérimenter cela pendant que tu me mettais ta suggestion Tu es trop rapide petit scarabée!!! ça fonctionne à merveille!!!

    michel.souris, effectivement il est nécessaire de mettre le HAVING pour que toutes les conditions soient remplies et uniquement celles la.

    Merci en tout cas à tous les 2, une vraie équipe de choc!
    Carpe Diem : Profitez du moment présent
    La connaissance non partagée n'a pas vraiment son utilité

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

Discussions similaires

  1. [AC-2007] Requete pour sortir les éléments qui n'ont pas une caractéristique donnée
    Par abdessmz dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 02/04/2014, 11h00
  2. Réponses: 24
    Dernier message: 21/02/2012, 15h46
  3. [AC-2007] Un même évenement qui peut avoir une ou plusieurs heures le même jour
    Par alfhcg dans le forum Modélisation
    Réponses: 4
    Dernier message: 15/09/2011, 00h23
  4. Réponses: 1
    Dernier message: 10/03/2011, 10h08
  5. Parmi 3 cellules, une seule peut avoir une valeur différente de 0.
    Par EricQ dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 07/07/2008, 15h46

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