Aide Requête SQL
Répondre à la discussion
Affichage des résultats 1 à 9 sur 9

Aide Requête SQL



  1. #1
    fabien024

    Aide Requête SQL


    ------

    Bonjour à tous,

    Je sais que l'on trouve pas mal d'information sur le net concernant les requêtes SQL mais j'avoue bloquer sur un problème bien précis :

    Je vais tout d'abord vous présenter la chose schématiquement :

    Admettons qu'à la suite d'une requête, a priori bien construite j'obtienne :

    (Ne pas tenir compte des col1)
    Code:
    col1    col2   col3   col4  col5
    1       111    666    6     FFF
    2       111    666    6     GGG
    3       111    666    3     FFF
    4       222    777    2     XXX
    5       222    777    3     SSS
    6       222    777    2     SSS
    7       333    888    5     DDD
    8       333    888    6     DDD
    9       333    888    4     RRR
    10      333    888    6     RRR
    Et que je veuille obtenir :

    Code:
    1  111 666 6 FFF
    2  111 666 6 GGG
    
    4  222 777 2 XXX
    
    6  222 777 2 SSS
    
    8  333 888 6 DDD
    
    10 333 888 6 RRR
    C'est à dire uniquement les lignes pour lesquelles l'avant dernière ligne est la même à la fois pour 'FFF' et pour 'GGG'

    y a t'il un tri a faire dans les résultats ou bien c'est la requête qu'il faut reprendre ?

    Merci bien

    -----
    Dernière modification par JPL ; 19/08/2014 à 18h30. Motif: utilisation de la balise Code pour récupérer l'alignement

  2. #2
    whoami

    Re : Aide Requête SQL

    Bonjour,

    Je ne vois pas le rapport entre ce que tu désires, ce que tu appelles "l'avant dernière ligne", et les valeurs 'FFF' et 'GGG'.

    Comment as-tu fait manuellement pour obtenir ça ?

  3. #3
    fabien024

    Re : Aide Requête SQL

    Code:
    	Select  Personne.IdPersonne,Personne.NumeroTel,Commande.IdCommande,Produit.IdProduit,MagasinPossible.Nom
    			From Personne 
    			Inner join  Commande on Personne.IdPersonne = Commande.IdPersonne
    			Inner join Produit on Commande.IdProduit=Pc.ID_ProdCharger
    		        Inner join MagasinPossible on Produit.IdMagasin = MagasinPossible.IdMagasin	
                            where<conditions >
                            group by Personne.IdPersonne,Personne.NumeroTel,Commande.IdCommande,Produit.IdProduit,MagasinPossible.Nom
    Admettons que la requête renvoie :




    Code:
     IdPersonne : NumeroTel Commande Produit MagasinPossible
    
                  Natacha                 0625                  38                      Lampe           Auch
                  Natacha                 0625                  38                      Table             Auch
                  Natacha                 0625                  38                      Chaise           Auch
                  Natacha                 0625                  38                      Ourson          Auch
                  Natacha                 0625                  38                      Chaise           Lecl
    
                  Pierre                    0627                  36                      Viande           Auch
                  Pierre                    0627                  36                      Lait               Auch
                  Pierre                    0627                  36                      Chocolat        Auch
                  Pierre                    0627                  36                      Farine            Auch
                  Pierre                    0627                  36                      Viande           Lecl
                  Pierre                    0627                  36                      Lait               HU
                  Pierre                    0627                  36                      Chocolat        HU
                  Pierre                    0627                  36                      Farine            HU
                  Pierre                    0627                  36                      Viande           Casi
                  Pierre                    0627                  36                      Lait               Casi
                  Pierre                    0627                  36                      Chocolat        Casi
                  Pierre                    0627                  36                      Farine            Casi


    En fait voilà, au moment de ma requête je "sors" les magasins disponibles pour chaque produit,pour une commande donnée, mais ce que j'aimerais c'est faire aller Natacha à Auch, car tous ces produits sont dispo dans ce magasin, et Pierre à Casi ou Auch. En gros n'afficher que les magasins dont TOUS les produits sont disponibles dans les résultats. Je sais c'est un peu alambiqué et il faut peut être le faire en deux fois...

    Merci de m'aider, c'est important
    Dernière modification par fabien024 ; 19/08/2014 à 22h36.

  4. #4
    Arzhur

    Re : Aide Requête SQL

    Bonjour,


    J'ai l'impression que le plus simple/souple est de filtrer le résultat en sortie.

    Sinon je ne vois pas comment faire ça en 1 seule requête (et en 2 non plus d'ailleurs) ...(je sais j'aide pas beaucoup)

  5. A voir en vidéo sur Futura
  6. #5
    fabien024

    Re : Aide Requête SQL

    A oui merci vraiment !

    Autant j'étais en train de m'inquiéter quand à la faisabilité de la chose autant je suis rassuré de voir que tu apportes réponse claire et pertinente à mon problème

    Si jamais tu as d'autres illuminations de la sorte, tiens moi au jus haha

  7. #6
    Bluedeep

    Re : Aide Requête SQL

    Un détail : la clause GROUP BY utilisée sans fonction d'agrégat dans les arguments du SELECT ne présente pas beaucoup d’intérêt ici.

    Sinon, pour ton problème c'est faisable a priori, mais passe le DDL des tables pour qu'on y voit clair. (car sans le DDL et une idée des critères de la clause WHERE c'est jouer aux devinettes, et j'ai passé l'âge).
    Dernière modification par Bluedeep ; 22/08/2014 à 08h20.

  8. #7
    fabien024

    Re : Aide Requête SQL

    Oui vous avez raison, la clause Group By ne groupe rien ici.

    Malheureusement je n'ai pas de DDL, c'était juste un exemple qui devait permettre de se faire une idée de ce que je voulais faire.

    Je pensais que mon exemple était ludique, parlant, compréhensible et d'utilisation courante mais j'ai pu me tromper.

    Merci quand même !

  9. #8
    frederic46000

    Re : Aide Requête SQL

    bonjour,

    A priori ce n'est pas une requête qu'il te faut mais de la programmation (genre VBA et EXCEL).
    Ouvre ta base sous excel et la programmation en vba doit donné :
    1°) tri des données id personne puis magasin
    2°) utiliser la fonction données/sous total et calculer à 2 niveaux (id personne puis magasin) le nombre d'articles
    disponibles et afficher la synthèse.

    je te laisse programmer en VBA ( essaye en manuel puis enregistre en auto tes actions ).

    Fred.
    Je sais que je ne sais rien. (SOCRATE)

  10. #9
    fabien024

    Re : Aide Requête SQL

    Bonjour,

    Okay merci pour l'info Fred!

Discussions similaires

  1. Aide requete SQL
    Par h.thierry dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 03/04/2013, 15h47
  2. sql requete
    Par aminaa dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 13/02/2013, 18h28
  3. Besoin d'aide requete SQL
    Par MANTA.. dans le forum Programmation et langages, Algorithmique
    Réponses: 4
    Dernier message: 20/10/2012, 14h01
  4. Requete SQL
    Par invitef84ed095 dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 26/12/2010, 11h57
  5. [Divers] requete
    Par enebre dans le forum Dépannage
    Réponses: 0
    Dernier message: 25/01/2008, 20h58