[edit]
Mon post etant long chi### et compliqué, j'ai reformulé la question plus bas...
si quelqu'un pouvait m'aider
je manque de connaissance!
merci d'avance!
[/edit]
bonjours, afin de palier a l'abscence des vues dans mysql 4.0, je crée une table temporaire, dans la quelle je renseigne les données 1-aire (une seule ligne par info), puis, j'essaie de lui envoie des champs complementaire (plusieurs info pour une ligne)
ex:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 UPDATE requisDispoTemp, agents.d_agents, e_expert SET requisDispoTemp.Nom_Expert = concat_WS(' ' , agents.d_agents.a_Nom, requisDispoTemp.Nom_Expert) WHERE e_expert.a_id = agents.d_agents.a_id AND e_expert.id_outil = requisDispoTemp.id_outil
on as :
Code : Sélectionner tout - Visualiser dans une fenêtre à part requisDispoTempma table temporaire
le pb c'est que la table
peut posseder plusieurs personnes (a_id) pour un meme classeur outil
Code : Sélectionner tout - Visualiser dans une fenêtre à part e_expert (a_id, id_outil)
(id_outil)
ex :
(classeur_outil---(0,N)----------(0,N)-------expert)
fonctionnelement, ca ne parcours pas les resultats : ca trouve le premier enregistrement correspondant :
ca me trouve le premier expert, mais pas les autres (que je voudrait afficher grace au concat with separator(, mais qui a besoin d'un oparcours des resultats) )
en esperant avoir ete suffisament clair...
plus concretement, peut on faire un ipdate qui parcours tous les ersultats? sinon, comment dois-je faire?
----------------------------------------
ceci est le code de création
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 CREATE TEMPORARY TABLE IF NOT EXISTS requisDispoTemp ( id_outil int primary key, Service int(10) unsigned , Nom_CO varchar(255), Compétences_dispo int, Compétences_cibles int, Compétences_requises int, Nom_Expert varchar(50), Nom_Responsable_COP varchar(50) ) DELETE FROM requisDispoTemp INSERT INTO requisDispoTemp ( id_outil, Service, Nom_CO, Compétences_dispo, Compétences_cibles, Compétences_requises ) SELECT e_Classeur_outil.id_outil AS id_outil, d_sdum.s_Code AS Service, e_Classeur_outil.nom AS Nom_CO, COUNT(e_Competence_agent.id_competence) AS Compétences_dispo, SUM(e_Competences_cible.nombre) AS Compétences_cibles, SUM( e_Competences_requises.nombre) AS Compétences_requises FROM e_Classeur_outil, e_Competence_agent, e_Competences_cible, e_Competences_requises, e_lien_classeur_outil_et_sdua, dtg.d_sdum, e_activite WHERE e_Competence_agent.id_activite = e_activite.id_activite AND e_Competences_cible.id_competence LIKE '%%' AND e_activite.id_outil = e_Classeur_outil.id_outil AND e_Competences_cible.id_activite = e_activite.id_activite AND e_Competences_requises.id_activite = e_activite.id_activite AND e_lien_classeur_outil_et_sdua.s_id = 7 AND e_lien_classeur_outil_et_sdua.id_outil = e_Classeur_outil.Id_outil AND d_sdum.s_id = e_lien_classeur_outil_et_sdua.s_id GROUP BY Nom_CO, id_outil, Service UPDATE requisDispoTemp, agents.d_agents, e_expert SET requisDispoTemp.Nom_Expert = concat_WS(' ' , agents.d_agents.a_Nom, requisDispoTemp.Nom_Expert) WHERE e_expert.a_id = agents.d_agents.a_id AND e_expert.id_outil = requisDispoTemp.id_outil Résultat de la requete : '1')
Partager