Problème group by sur un champs de type 'text'

cs_MobyWan Messages postés 12 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 4 septembre 2010 - 18 oct. 2007 à 11:51
cs_MobyWan Messages postés 12 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 4 septembre 2010 - 18 oct. 2007 à 14:01
Bonjour,

J'ai une procédure stockée qui me permet de faire une view d'une table suite a une recherche FullText.

Le problème est que j'ai besoin d'utiliser une fonction d'agrégation et que pour ce faire je dois faire un group by et qu'un des champs du group by est de type text ce qui est incompatible. Convertir le champs de type text en varchar serait la solution seulement si le champs text est trop grand une erreur "String or binary data would be truncated.
" survient. J'ai bien essayé d'utiliser la fonction left pour ne prendre que les x premiers caractères de mon champ mais il y a aussi une incompatibilité avec le type text.

Est ce que quelqu'un aurait une idée???

MobyWan
A voir également:

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
18 oct. 2007 à 13:17
Salut,

Voici peut etre une idée a étudier.

Tu fais ton groupby sans le texte et apres tu fais une jointure sur le resultat de ton group by.
Et la normalement ça doit resoudre le probleme.

option a etudier, si tu trouves je suis preneur.

Sans la structure des tables c'est un peut difficile de faire un exemple

tu peux utiliser un "max(id) as id" par exemple pour faire la jointure avec la table qui contient le champ texte

select monchamptexte from matable
where id in (select max(id) as id from matable group by unchamp)

ou

select monchamptexte from matable
inner join (select max(id) as id from matable group by unchamp) groupbytable
on groupbytable.id = matable.id

Ces exemples sont des pistes et n'ont pas été testés.
0
cs_MobyWan Messages postés 12 Date d'inscription mercredi 17 octobre 2007 Statut Membre Dernière intervention 4 septembre 2010
18 oct. 2007 à 14:01
Merci pour ces solution mais en fait il suffisait de forcer le cast en varchar sur le champs de type text et a ce moment il ne renvoi pas l'erreur a propos du résultat tronquer.

MobyWan
0
Rejoignez-nous