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

Requêtes et SQL. Discussion :

Forcer toutes les données [AC-2007]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut Forcer toutes les données
    Bonsoir,

    J'ai une table "Clients"
    Une table "commandes"
    Une table "Produits"

    Je voudrais à l'aide d'une requête analyse croisée afficher en ligne tous mes clients qu'ils aient ou non une commande.

    Dans cette même requête sur les colonnes tous les noms de mes produits qu'il y ai une commande ou non.

    Au centre bien sûr la quantité de produits achetés ou zéro si pas de commande.

    Est-ce possible ?

    Si oui comment pratiquer ?

    Merci par avance.

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 756
    Points : 57 605
    Points
    57 605
    Billets dans le blog
    42
    Par défaut
    bonsoir,

    on peut commencer par un produit croisé:

    R_ProduitCroise:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT client.idcli, Produit.idprod
    FROM client, Produit;

    puis dans l'assistant requête:
    R_ProduitCroise====>Commande
    (jointure type 2, sur les 2 champs idProd, idCli)

    reste à regrouper, et mettre en pivot.
    Avec la fonction Nz pour mettre à zéro les champs Null, ça devrait aller.

  3. #3
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut
    Bonsoir Fabien, merci pour votre réponse, dans la première requête les champs ne sont pas liés, c'est bien ça ?

    Je continue mes essais et je vous tiens au courant.
    Je voudrais comprendre la technique.

    Encore merci et bonne soirée à vous.

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 756
    Points : 57 605
    Points
    57 605
    Billets dans le blog
    42
    Par défaut
    Citation Envoyé par Nounours1
    dans la première requête les champs ne sont pas liés, c'est bien ça ?
    voui c'est bien ça. cela permet d'obtenir toutes les combinaisons (idprod, idcli).

    Plus de détails:
    Jointures croisées
    Dans une jointure croisée, chaque ligne d'une table est combinée à chaque ligne d'une autre table, le résultat est alors désigné comme produit croisé ou produit cartésien.

  5. #5
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut
    Je suis presque arrivé aux résultats, mais dans le comptage de la requête analyse croisée j'obtiens uniquement des "1" ,c'est là ou il faut écrire la fonction NZ , mais ou placer celle-ci ?

    Dans le critère du champ compte de cette même requête ?

    Auriez-vous un exemple de cette formule adaptée à ce cas?

    Merci.

  6. #6
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 756
    Points : 57 605
    Points
    57 605
    Billets dans le blog
    42
    Par défaut
    j'ai un doute...

    Au centre bien sûr la quantité de produits achetés ou zéro si pas de commande
    tu comptes le nbr de commandes d'un même produit par client ou tu fais la somme de quantités ?

    Autrement dit, tu as un champ [quantité] dans ta table commande ?

  7. #7
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut
    Je compte le nbr de commandes d'un même produit par client, non je n'ai pas de champ quantité dans ma table commande.

  8. #8
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 756
    Points : 57 605
    Points
    57 605
    Billets dans le blog
    42
    Par défaut
    ok,

    donc si je reprends:

    Citation Envoyé par f-leb
    puis dans l'assistant requête:
    R_ProduitCroise====>Commande
    (jointure type 2, sur les 2 champs idProd, idCli)
    dans l'assistant requête tu passes en Analyse croisée.
    idCli en en-tête de ligne, idProd en en-tête de colonne puis une colonne avec le champ Commande.idProd et opération Compte en Valeur.
    Pas besoin de Nz en fin de compte

  9. #9
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut
    ça ne fonctionne pas car j'ai bien en colonne tous les produits, mais sur les lignes je n'ai que le client qui a au moins une commande et non tous les clients, je dois passer à coté de quelque chose.

    Merci.

  10. #10
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 756
    Points : 57 605
    Points
    57 605
    Billets dans le blog
    42
    Par défaut
    Citation Envoyé par f-leb Voir le message
    puis dans l'assistant requête:

    R_ProduitCroise====>Commande
    (jointure type 2, sur les 2 champs idProd, idCli)
    Tu as bien changé le type de jointure ?
    Tu double-cliques sur chacune des deux jointures et tu mets le type 2. Normalement les jointures apparaissent avec une flèche de R_ProduitCroisé vers Commande (sinon prendre le type 3).

  11. #11
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut
    J'ai trouvé en fait je faisais le calcul sur client et non sur produit, maintenant c'est bon.

    Encore merci.

  12. #12
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut
    Merci Fabien c'est parfait, on peut suite à ça placer cette requête dans formulaire ou un état pour obtenir une présentation claire ?

    Car les champs seront figés je pense ?

    Bonne soirée.

  13. #13
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 756
    Points : 57 605
    Points
    57 605
    Billets dans le blog
    42
    Par défaut
    Citation Envoyé par Nounours1 Voir le message
    Car les champs seront figés je pense ?
    En principe non ce n'est pas figé, si tu rajoutes un produit tu auras une colonne de plus et c'est bien un problème dans un état/formulaire.

    voir par exemple: Création d'un état basé sur une requête analyse croisée

  14. #14
    Membre régulier Avatar de Nounours1
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 439
    Points : 116
    Points
    116
    Par défaut
    En effet il y a du travail, mais dans mon cas je vais rester à ma requête vu qu'elle me donne les éléments voulus.

    Bonne soirée et encore un très grand merci.


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

Discussions similaires

  1. Supprimer toutes les données d'une base
    Par yopyopyop dans le forum Oracle
    Réponses: 13
    Dernier message: 21/06/2006, 13h35
  2. Réponses: 11
    Dernier message: 04/05/2006, 11h50
  3. Réponses: 2
    Dernier message: 01/11/2005, 10h03
  4. Effacer toutes les données d'une colonne
    Par denisfavre dans le forum Access
    Réponses: 5
    Dernier message: 12/10/2005, 15h20
  5. Réponses: 2
    Dernier message: 11/10/2005, 09h15

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