none
question sur une requête RRS feed

  • Question

  • Bonjour,

    mon scénario est très similaire à une combinaison commune Commande - Inventaire

    pour chaque commande je peux avoir plusieurs items d'inventaire et pour d'autre commande, il se pourrais qu'il n'y est aucun item d'inventaire, par contre dans ma requête, j'aimerais par exemple retirer les enregistrements dont l'item d'inventaire pourrais correspondre à une catégorie spécifique comme 'Amortisseur'.

    Alors en résumer si j'ai 10 commandes, j'aimerais afficher tout les commandes, qu'il est des items d'inventaire ou pas, mais les commandes qui en ont, de me sortir que les items qui sont de la catégorie 'Amortisseurs'

    Si j'écris cette requête

    SELECT     Table1.numero, Table2.Categorie
    FROM         Table1 LEFT OUTER JOIN
                          Table2 ON Table1.numero = Table2.numero
    


    Cette requête me sort tout les enregistrement, mais avec certain plus qu'une fois, car il peux y avoir d'autre item d'inventaire que des 'Amortisseurs'

    Si j'écris la même requête, mais avec cela en plus:

    WHERE

    (Table2.Catégorie ='Amortisseurs')

    cela ne me sort que les commande de la table1 qui ont un items d'inventaire de catégorie 'Amortiseurs', se que je ne veut pas car jaimerais quand même toujours afficher tous les 10 commandes, même ceux qui n'ont pas cette catégorie en item d'inventaire

    merci

    vendredi 21 octobre 2011 07:29

Réponses

  • Bonjour,
     
    Si j'ai bien compris, ajoutez un test dans la clause ON
    ON Table1.numero = Table2.numero AND Table2.Catégorie = 'Amortisseurs'
     

    Fred
    • Marqué comme réponse NeoBugs vendredi 21 octobre 2011 09:12
    vendredi 21 octobre 2011 08:58

Toutes les réponses

  • Bonjour,
     
    Si j'ai bien compris, ajoutez un test dans la clause ON
    ON Table1.numero = Table2.numero AND Table2.Catégorie = 'Amortisseurs'
     

    Fred
    • Marqué comme réponse NeoBugs vendredi 21 octobre 2011 09:12
    vendredi 21 octobre 2011 08:58
  • Merci Foleide, je ne savais pas que l'ont pouvait insérer des conditions dans les jointures (ON)

    Merci d'avoir répondu

    vendredi 21 octobre 2011 09:12
  • je trouve cela vraiment étrange, j'ai ajouter ce que tu m'as dis et ça fonctionne, mais seulement dans Sql Management Studio, si je l'essai dans visual studio, en faite dans mon site en .net avec les combinaisons de SqlConnection, SqlCommand et SqlDataReader, ça ne fonctionne pas comme je voudrais.  J'ai de la difficulté avec le triage, lorsque j'enlève ce que tu m'as mentionné, ça fonctionne correctement dans VS.

    Aurais-tu une autre idée ou bien une autre façon d'exécuter la même chose?

    Merci de ton aide :)

    vendredi 21 octobre 2011 14:01
  • Bonjour,
    Il va falloir être plus précis parce que je suis un peu dans le flou.
    Je n'ai jamais vu une requête renvoyer des résultats différents selon
    qu'elle est exécutée à partir de SSMS ou bien à partir de code .NET.
    Si la requête renvoie les résultats attendus dans SSMS, alors il faut se
    pencher sur le code.
    Qu'est-ce qui ne fonctionne pas comme souhaité ?
    Quelles sont les difficultés de tri ?
    Un bout de code .NET à montrer peut-être ?
     
     

    Fred
    samedi 22 octobre 2011 07:37
  • je sais bien, mais c'est bien le cas, lorsque mon site arrête (point d'arrêt) au moment d'appliquer la requête à mon SqlDataSource.SelectCommand, je copie-colle la requête dans SSMS et elle tri correctement mes colonnes contrairement à ma GridView, on dirait que sur ma GridView aucun triage ne s'exécute, je la comprend pas, pourtant lorsque j'enlève la ligne que tu m'as proposé d'ajouter (AND Table2.Catégorie = 'Amortisseurs') cela fonctionne correctement sauf que j'ai des rangées supplémentaire que je ne veux pas, de la mon problème.

    Cela ne me dérange pas de t'expliquer mon scénario et de t'écrire du code, es-t-il possible de faire cela en privé?, de plus je crois que cela sera un peu long...

    merci de bien vouloir m'aider

     

    samedi 22 octobre 2011 11:00
  • Bon je suis vraiment désolé de t'avoir fait perdre ton temps, mon problème était justement dans le code, stupidement ma valeur catégorie ne contenait rien, j'ai rêgler ce problème et voilà cela fonctionne comme voulu.

    merci quand même de ton aide, au moins ta réponse plus haut m'a été plus que nécéssaire

    samedi 22 octobre 2011 11:30
  • Pas de problème, quand je réponds, c'est que j'ai du temps ;-)
    Merci pour le retour.
     
     

    Fred
    samedi 22 octobre 2011 11:53