Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/06/2011, 19h39   #1
Membre du Club
 
Inscription : janvier 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 149
Points : 41
Points : 41
Par défaut Requête sur combinaison calculée

Bonjour,

Voilà mon cas:

Tab1 ----------- Tab2

N°---------------N°
Montant=10------ Montant=2
----------------- Montant=6
----------------- Montant=5
----------------- Montant=4
----------------- Montant=20
----------------- Montant=1
----------------- etc....

Est-il possible de faire une requête qui me donne toutes les combinaisons de la Tab2 dont le résultat est égal à 10 (Montant=10 de Tab1)

Merci de votre concours

Gentoo

gentoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2011, 12h30   #2
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Bonjour Gentoo,

Désolé, mais peux-tu être plus clair dans ton exposé ?
Quels champs ont tes tables 1 et 2 : N°, montant, les 2 ? sur quelle colonne souhaites-tu effectuer ta jointure ? montant?
Quelles colonness souhaites-tu faire apparaitre ? le N° ?

Donnes nous un exemple plus détaillé de chacune des tables
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2011, 08h50   #3
Membre du Club
 
Inscription : janvier 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 149
Points : 41
Points : 41
Oui, désolé, je n'ai pas été assez précis.

Champs des tables 1 et 2 : N°, montant,

Jointure par "N°"

3 Colonnes de résultat:
"N°"
"MontantTab1"
"SommeDeMontantTab2=MontantTab1"

Dites moi si je suis clair...


Merci
gentoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2011, 23h11   #4
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
Bon, je crois il y a besoins de certains éclaircissements.

En fait, tu souhaites sortir les n° dans la table 1 dont les montant soient égaux à la somme des montants dans la table 2.
Ce n'est pas suffisant, car le SQL n'est pas capable de déterminer sur quel enregisgtrement effectuer la sommation, si on ne lui précise pas. En effet, les opération de sommations ne sont possibles que sur des fonctions de regroupement sur des objets logiques (ici, tes colonnes de ta table)

Dans ton exemple, tu as dans ta table1 un montant de 10. Tu souhaites donc obtenir les n°s dans la table 2 dont la somme des montants est égale à 10.
Or du vois qu'il peut y avoir plusieurs combinaisons :
10 = 6 + 4 = 5 + 4 + 1, etc.
il te faut donc au minimum, pour faire une sommation, utiliser une fonction de regroupement, sur les n°s dans la table 2 par exemple.
voici par ex. une comparaison pertinente :
Table 1
N°; montant
1;5
2,10
3;8
4;20

Table 2
N°; montant
10;2
15;6
10;5
15;4
12;20
10;1

si on fait un regroupement dans la table 2 par N° on aurait :

N°; montant
10;8
15;10
12;20

que l'on pourrait comparer avec la table 1. On aurait alors la correspondance :
Table1.n°;Table2.n°;montant
2;10;8
3;15;10
4;12;20


Est-ce cela que tu recherches ?
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 08h19   #5
Membre du Club
 
Inscription : janvier 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 149
Points : 41
Points : 41
Je te remercie Dumas.blr de t'être penché sur mon problème, mais j'avoue que je me suis peut-être noyé.

Je vais prendre un exemple plus concret:

J'ai un fournisseur: "Durandal"
J'ai une facture de 100€ au nom de "Durandal"

J'ai plusieurs livraisons d'articles:

110€
50€
60€
40€
20€
10€

La question est de pouvoir me retourner toutes les combinaisons possibles dont la somme est égale à 100€
La jointure est le Fournisseur.
Si une requête existe elle devrait commencée par isoler tout les montants inférieurs à 100€

Les combinaisons possibles sont à vu d'oeil
(50€;40€;10€)
(60€;40€)

Une requête peut elle trouver ces combinaison?

Mille excuses pour mes tentatives d'explication.

Gentoo
gentoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 10h07   #6
Membre éprouvé
 
Avatar de dumas.blr
 
Homme Jean-Yves DUMAS
Consultant informatique
Inscription : juin 2010
Messages : 325
Détails du profil
Informations personnelles :
Nom : Homme Jean-Yves DUMAS
Âge : 48
Localisation : France, Hauts de Seine (Île de France)

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : juin 2010
Messages : 325
Points : 447
Points : 447
D'accords,

En fait, tu cherche retrouver des lignes de factures à partir d'un total facture, mais tu n'as pas le numéro de facture ...

Désolé, mais là, le SQL ne pourra t'être d'aucune aide, car il ne fait pas d'intelligence artificielle (!!!)
Sans faire d'humour, te rends-tu compte de la complexités des problèmes que cela induit ?
- sur combien d'élément doit on faire un calcul : 1? 2? 3? plus ?
- quels sont les critères logiques de regroupement ? dois-je additionner des choux et des carottes ?

Même sans utiliser le SQL, tu te rends compte que si tu devais le faire manuellement, tu serais obligé toi-même d'opérer des choix complexe (du type : qu'est ce qui me permet de rapprocher ce montant avec cet autre montant ? Une date de facture, un numéro de fournisseur ? etc.)
il te faudra passer par un programme avec un algorithme complexe pour le faire. Le SQL ne pourra t'aider dans un premier temps a opérer des sélections sur ta population en fonction des choix que tu lui indiques.

Dans un deuxième temps, il te faudra un programme, qui calcule toutes les combinaisons d'un tableau de x éléments, c'est à dire avec x! combinaisons possibles. Ca, tu pourras le faire, mais pas en SQL.
__________________
S'il n'y a pas de solution, c'est qu'il n'y a pas de problème !!!
si tout est OK, n'oubliez pas de cliquer sur
dumas.blr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 11h20   #7
Membre du Club
 
Inscription : janvier 2007
Messages : 149
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 149
Points : 41
Points : 41
Merci Duma,

Je ne suis pas très calé en informatique, mais j'ai déjà fait des boucles.

Si ce n'est pas possible en SQL, je vais m'orienter vers une extraction par sql ( montant < 100€ pour "Durandal") puis faire une boucle par combinaison.

ça me prendra du temps mais ça me passionne déjà.

merci de ton concours,

gentoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h40.


 
 
 
 
Partenaires

Hébergement Web