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

sql et agrégat

3 réponses
Avatar
Sebho
Bonjour,

désolé si ce n'est pas tout à fait le bon newsgroup ; je ne l'ai pas trouvé

je souhaterais dans une requête faire un agrégat par concaténation ; est ce
possible ?

exemple

ma table :
id qté lettre
------------------------------------
1 2 A
2 3 B

mon résultat souhaité

select sum(qté), ??(lettre) from matable
group by ??

qté lettre
---------------------------
5 AB


En vous remerciant pour vous suggestions
--
Sebho

3 réponses

Avatar
SQLpro
Il n'existe pas de fonction toute faite pour cela. En revanche vous
pouvez au choix :
1) utiliser une procédure stockée
2) utiliser (v 2005) une CTE

Exemple 1) :
DECLARE @DATA VARCHAR(8000)
SET @DATA = ''
SELECT @DATA = @DATA + lettre
FROM MaTable

SELECT sum(qté), @DATA
FROM MaTable

A +




On 27 avr, 05:14, Sebho wrote:
Bonjour,

désolé si ce n'est pas tout à fait le bon newsgroup ; je ne l'ai pa s trouvé

je souhaterais dans une requête faire un agrégat par concaténation ; est ce
possible ?

exemple

ma table :
id qté lettre
------------------------------------
1 2 A
2 3 B

mon résultat souhaité

select sum(qté), ??(lettre) from matable
group by ??

qté lettre
---------------------------
5 AB

En vous remerciant pour vous suggestions
--
Sebho


Avatar
tcheb1
On 27 avr, 11:41, SQLpro wrote:
Il n'existe pas de fonction toute faite pour cela. En revanche vous
pouvez au choix :
1) utiliser une procédure stockée
2) utiliser (v 2005) une CTE

Exemple 1) :
DECLARE @DATA VARCHAR(8000)
SET @DATA = ''
SELECT @DATA = @DATA + lettre
FROM MaTable

SELECT sum(qté), @DATA
FROM MaTable

A +

On 27 avr, 05:14, Sebho wrote:



> Bonjour,

> désolé si ce n'est pas tout à fait le bon newsgroup ; je ne l'ai pas trouvé

> je souhaterais dans une requête faire un agrégat par concaténatio n ; est ce
> possible ?

> exemple

> ma table :
> id qté lettre
> ------------------------------------
> 1 2 A
> 2 3 B

> mon résultat souhaité

> select sum(qté), ??(lettre) from matable
> group by ??

> qté lettre
> ---------------------------
> 5 AB

> En vous remerciant pour vous suggestions
> --
> Sebho- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Ca marche mais pour une table entiere .....pas sr un agrégat....
Je recherche egalement un equivalent a listagg (sous oracle)

Pour le moment j'ai créer une procédure stocké (avec curseur) qui fait
la concaténation qui va bien, il stocke le résultat dans une table que
je viens interroger lors de ma requete..... enfin pas très pratique....
Avatar
ple_ain
Bonjour,

J'ai la même chose à faire.
Merci bien de me renseigner sur la procédure stockée à créer,
car pour l'instant, je n'ai pas mieux non plus.


a écrit dans le message de news:

On 27 avr, 11:41, SQLpro wrote:
Il n'existe pas de fonction toute faite pour cela. En revanche vous
pouvez au choix :
1) utiliser une procédure stockée
2) utiliser (v 2005) une CTE

Exemple 1) :
DECLARE @DATA VARCHAR(8000)
SET @DATA = ''
SELECT @DATA = @DATA + lettre
FROM MaTable

SELECT sum(qté), @DATA
FROM MaTable

A +

On 27 avr, 05:14, Sebho wrote:



> Bonjour,

> désolé si ce n'est pas tout à fait le bon newsgroup ; je ne l'ai pas
> trouvé

> je souhaterais dans une requête faire un agrégat par concaténation ; est
> ce
> possible ?

> exemple

> ma table :
> id qté lettre
> ------------------------------------
> 1 2 A
> 2 3 B

> mon résultat souhaité

> select sum(qté), ??(lettre) from matable
> group by ??

> qté lettre
> ---------------------------
> 5 AB

> En vous remerciant pour vous suggestions
> --
> Sebho- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Ca marche mais pour une table entiere .....pas sr un agrégat....
Je recherche egalement un equivalent a listagg (sous oracle)

Pour le moment j'ai créer une procédure stocké (avec curseur) qui fait
la concaténation qui va bien, il stocke le résultat dans une table que
je viens interroger lors de ma requete..... enfin pas très pratique....