Requêtes SQL: fusion de lignes

Requêtes SQL: fusion de lignes - SQL/NoSQL - Programmation

Marsh Posté le 21-09-2007 à 15:32:27    

Bonjour à tous,
 
j'ai une table A
idA   (est unique)
libelléA
id_b  (est lié à idB)
 
j'ai une table B
idB
libelléB
 
je voudrais faire une requête qui me permette de récupérer 1 ligne par identifiant de A et si il existe plusieurs libellé pour B les séparer par une virgule
 
Ex:
IdA libelléB  
1    toto,titi
2    tutu
3    toutou,tete
 
Un grand merci d'avance
 
ps: j'utilise Access
 

Reply

Marsh Posté le 21-09-2007 à 15:32:27   

Reply

Marsh Posté le 21-09-2007 à 15:34:51    

impossible
 
(succint comme réponse :sol:)

Reply

Marsh Posté le 21-09-2007 à 15:44:20    

Tu est vraiment sûr car on m'a dit que c'était possible?
 

Reply

Marsh Posté le 21-09-2007 à 15:44:59    

pas avec access.
 
ni avec aucun sgbd sauf mysql (fonction pourrie pas standard)
 
c'est à toi de faire le traîtement à la main dans une procédure vba


Message édité par MagicBuzz le 21-09-2007 à 15:45:20
Reply

Marsh Posté le 21-09-2007 à 15:46:30    

ps : et celui qui t'as dit que c'était possible, il a qu'à te dire comment faire (et n'oublie pas de nous tenir au courant, après tout je peux me planter, mais ça me ferais bien mal)

Reply

Marsh Posté le 24-09-2007 à 14:18:22    

ok je vous tiens au courant.
 
En VBA c'est possible?
quelqu'un connait le script?
 
Cdt

Reply

Marsh Posté le 24-09-2007 à 14:24:43    

bah tu récupères toutes les lignes normalement, et ensuite tu les parcours pour grouper...quel est le soucis?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 24-09-2007 à 15:01:45    

je ne connais pas le VBA mais juste le SQL....

Reply

Marsh Posté le 25-09-2007 à 08:43:40    

C'est ça la fonction pourrie non standard mySQL :D ?

Code :
  1. SELECT idA, GROUP_CONCAT(libelleB) FROM A, B WHERE id_B = idB GROUP BY idA SEPARATOR ','


J'ai jamais testé, c'est pas performant ?
 
http://dev.mysql.com/doc/refman/5. [...] oup-concat

Reply

Marsh Posté le 25-09-2007 à 09:27:42    

aucune idée si c'est pas performant.
 
mais j'aimerais bien voir ce que ça donne quand t'as 100 000 lignes...
 
au mieux, ça rame 3 heures pour te ramèner la première ligne, au mieux ça te la tronque à 4 ou 8000 caractères (je sais pas quelle est le max du varchar en MySQL), mais dans les deux cas c'est bien pourri.
 
avec un peu de pot, ça lève une exception, dans ce cas je dis "mouaif mais bon, on peut pas s'en servir en prod donc..." (mais au moins le programme se comporte de façon prévisible)
=> J'aime bien la doc... Qui explique que ça tronque à la limite fixée par une variable, qui elle même ne peux pas dépasser une autre variable... mais aucune indication du max de la variable en question. En tout cas, coupé par défaut à 1024 caractères, c'est même pas la peine d'espérer utiliser le truc en prod. Si au moins ça retournait un CLOB...


Message édité par MagicBuzz le 25-09-2007 à 09:31:39
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed