Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Champ Text dans un group by.

2 réponses
Avatar
ThunderMusic
Bonjour,
j'ai besoin de faire une somme de la facon suivante : Select Champs1,
sum(Champs2) as sumChamps2 From Table1 Group By Champs1. à mon avis, la
syntaxe est correcte, seulement, le Champs1 en question est un champs de
type Text (et non pas varchar). Résultat, je recois une erreur me disant
qu'on ne peut grouper sur la base d'un champs de type Text. Est-ce qu'il y a
un moyen directement dans la requete pour convertir ce type en autre chose
afin que le group by fonctionne?

Merci

ThunderMusic

btw, je suis en SQL Server 2000.

2 réponses

Avatar
Patrice
A priori il faut un CAST en VARCHAR sur la longueur jugée significative.

Le problème est que ce type de champ peut être potentiellement très grand
d'où l'impossibilité de faire un group by (ce qui d'ailleurs
fonctionnellement ne devrait pas avoir beaucoup de sens, que cherches tu à
faire ?)

--
Patrice

"ThunderMusic" a écrit dans le message de
news:
Bonjour,
j'ai besoin de faire une somme de la facon suivante : Select Champs1,
sum(Champs2) as sumChamps2 From Table1 Group By Champs1. à mon avis, la
syntaxe est correcte, seulement, le Champs1 en question est un champs de
type Text (et non pas varchar). Résultat, je recois une erreur me disant
qu'on ne peut grouper sur la base d'un champs de type Text. Est-ce qu'il y


a
un moyen directement dans la requete pour convertir ce type en autre chose
afin que le group by fonctionne?

Merci

ThunderMusic

btw, je suis en SQL Server 2000.




Avatar
ThunderMusic
c'est à partir d'une table général qui regroupe plusieurs données de
configurations. En fait, c'est dans MSProject et c'est la table
MSP_OUTLINE_CODES. Donc le Champs OC_NAME est un Text mais peut contenir
(comme dans mon cas) des données qui peuvent très bien se limiter à quelques
caractères, donc pour un type de codes seulement (je fais le filtre avec un
where), je veux faire une somme en fonction du OC_NAME qui est un champ de
type Text, mais que dans une base de donnée standart aurait très bien pu
être de type varchar(15).

alors, si je comprends bien, la fonction CAST pourrait faire le travail? je
vais essayer de trouver la documentation de cette fonction

Merci

ThunderMusic

"Patrice" wrote in message
news:
A priori il faut un CAST en VARCHAR sur la longueur jugée significative.

Le problème est que ce type de champ peut être potentiellement très grand
d'où l'impossibilité de faire un group by (ce qui d'ailleurs
fonctionnellement ne devrait pas avoir beaucoup de sens, que cherches tu à
faire ?)

--
Patrice

"ThunderMusic" a écrit dans le message de
news:
Bonjour,
j'ai besoin de faire une somme de la facon suivante : Select Champs1,
sum(Champs2) as sumChamps2 From Table1 Group By Champs1. à mon avis, la
syntaxe est correcte, seulement, le Champs1 en question est un champs de
type Text (et non pas varchar). Résultat, je recois une erreur me disant
qu'on ne peut grouper sur la base d'un champs de type Text. Est-ce qu'il
y


a
un moyen directement dans la requete pour convertir ce type en autre
chose
afin que le group by fonctionne?

Merci

ThunderMusic

btw, je suis en SQL Server 2000.