|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 11 ![]() |
Bonjour à tous,
Je suis actuellement entrain de mettre en place une base de compétence dans mon entreprise. Il y a plusieurs tables pour servir chaques specificités que voici:
Donc au niveau des tables voici les champs (j'indique que els champs utile pour ce que je veux fair histoire d'alléger la lecture
Voici le schema des relations entre chaque pour vous aider à mieux comprendre: ![]() donc ce que j'ai besoin de faire Le chef d'equipe aimerais pouvoir afficher dans une table le nom de l'opérateur, le nom de la machine, le niveau théorique qu'il a sur la machine (s'il existe) et le "niveau calculé" qu'il a sur cette machine. Le "niveau théorique" est donc celui qu'on lit dans la table niveau, pour cela pas de soucis. Le "niveaau calculé" est le niveau (de 0 à 4) qu'il a sur une machine en fonction des opl qu'il à appris (en fonction de ses compétences donc). Pour valider un niveau calculer sur une machine, l'operateur doit connaitre toutes les opl de cette machine et de ce niveau. Ex : si l'opérateur connait toutes les opl niveau 0 de la machine X, il a donc un niveau calculé de 0 sur X S'il manque une opl, il n'obtient pas ce niveau. Je pensais donc faire une requete qui me permet tout d'abord de lister : nom de l'employee, nom machine, niveau de l'opl qu'il connais et le nombre total des opl de ce niveau sur cette machine. Puis ajouter à coté une collone niveau totaux, qui pour le niveau en question, compte toutes les opl de ce niveau sur cette machine (donc un calcul ittératif ligne par ligne en fonction des valeurs de collones precedentes) Voici don la première requete qui fonctionne : Code :
donc, c'est là que j'en suis, comment faire mon autre collone. Ensuite une fois que j'ai mes deux collonnes je pense que je ferais un script VB qui lit champs par champs et ne conserve que ceux où l'opérateur à un niveauthéorique égale au niveau calculé ... une trouver une façon de présenter cela "viable" ... Peut-être que je ne part pas dans le meilleur simple, je suis perdu au points où j'en suis et je m'en remet à vos conseil pour continuer. Merci d'avance pour toute aide que vous m'apporterez. |
||
|
|
00
|
|
|
#2 | ||||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 11 ![]() |
personne ?
Ne vous inquietez pas, en attendant j'ai pu continuer à me creuser le crane et à coup d'imbrication de requète et avec quelques litres de café voici ce que j'ai à ce point. ![]() J'a réussi à faire 2 requetes qui séparement produisent ce dont j'ai besoin. 1 - La permière compte le nombre d'opl de chaque niveau qu'un opérateur à sur chaque machine: Code :
Code :
Sachant que le but final c'est d'avoir 4 collones : Nom de l'opérateur, no de la machine, niveau réel et niveau calculé. C'est possible en SQL de faire des IF ? Car si c'est posiblle, je serais tenté de faire une collone qui fait Code :
"totale des opl en base" - "totale des opl de l'opérateur" Qu'en pensez-vous? Vais-je au plus efficace, il y a t'il une potentiel erreur? Merci |
||||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 11 ![]() |
si un modérateur passe dans le coin, peut-être ça serais mieux de placer ce topic sous la catégorie SQL du forum ? Car je pense pas que les fan de SQL viennent souvent faire un tour dans la section access ^^
|
|
|
00
|
|
|
#4 | ||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 11 ![]() |
Je pense faire une jointure entre les 2 requtes.
Je ne sais pas si c'est possible, dans tout les cas voici ce que j'ai fait ... ça ne fait pas d'erreur, mais ça me demande ce qu'est "req_compt1" puis ça me retourne la table vide ... où est-ce que j'ai fait une erreur? Code :
|
||
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 11 ![]() |
c'est bon ça marche!
Code :
à présent me reste encore l'histoire des niveaux théoriques et calculés en fonction des résultats....
|
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 11 ![]() |
question:
(simple cette fois) Si ça ça marche Pourquoi ceci ne marche pas? Code :
SELECT * FROM Requete_niveau WHERE Requete_niveau.niveau=2 .... je pige pas. |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 11 ![]() |
ma Requete_niveau étant celle du post n° 5
Cela devrais me faire donc Code :
SELECT * FROM Requete_niveau WHERE req_compt1.niveau_opl=2 (ça ne marche pas.) J'ai également essayé sans le "req_compt1" ça ne marche pas non plus |
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
pourriez-vous poster la requête complète et indentée pour la rendre plus lisible ?
Postez également le message d'erreur |
|
|
00
|
|
|
#10 | ||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 11 ![]() |
Code :
La requete toute seule fonctionne parfaitement. C'est uniquement quand je fait une requete sur cette requete en l'incluent par son nom (avec un condition) que ça ne me retourne aucun résultats. Je pense que ça vient donc de la condition, mais pourquoi je ne sais pas ... |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com