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

Requete en utilisant l'opérateur PIVOT

2 réponses
Avatar
jack
Bonjour,

Je suis sous SQL 2005

J'ai une table reglement dans laquelle j'ai

dateReglement smalldatetime
vendeur varchar(20)
typeReglement varchar(20) (Chèque, CB, espèces)
Montant decimal(18,2)

et des enregistrements de type
01/06/2008 PIERRE CHQ 600.25
01/06/2008 PAUL CHQ 200
01/06/2008 PAUL CHQ 350
01/06/2008 PAUL ESP 25
02/06/2008 PIERRE CB 200
02/06/2008 PIERRE CHQ 300
03/06/2008 PAUL CHQ 400

etc...

Je souhaiterais obtenir le résultat sous la forme suivante :

Date Vendeur CHQ CB ESP
TOTAL
01/06/2008 PAUL 550 0 25
575
01/06/2008 PIERRE 600.25 0 0
600.25
02/06/2008 PIERRE 300 200 0
500
03/06/2008 PAUL 400 0 0
400

Mais je n'y parviens pas...

Merci par avance

2 réponses

Avatar
Benoit
bonjour,

SELECT date, vendeur, [CHQ], [ESP], [CB], (isnull([CHQ],0)+isnull(
[ESP],0)+isnull([CB],0)) as TOTAL
FROM
(SELECT vendeur, typereglement, sum(montant) as montant
FROM reglement
GROUP BY vendeur, typergelement) pvt
PIVOT (sum(montant) FOR typereglement IN ([CHQ][ESP][CB])) as pvt

cordialement
clément

--
Clément DEGROOTE
SAS BEUZELIN
Tel : 02 32 67 20 60
Fax : 02 32 67 26 91
"jack" a écrit dans le message de news:

Bonjour,

Je suis sous SQL 2005

J'ai une table reglement dans laquelle j'ai

dateReglement smalldatetime
vendeur varchar(20)
typeReglement varchar(20) (Chèque, CB, espèces)
Montant decimal(18,2)

et des enregistrements de type
01/06/2008 PIERRE CHQ 600.25
01/06/2008 PAUL CHQ 200
01/06/2008 PAUL CHQ 350
01/06/2008 PAUL ESP 25
02/06/2008 PIERRE CB 200
02/06/2008 PIERRE CHQ 300
03/06/2008 PAUL CHQ 400

etc...

Je souhaiterais obtenir le résultat sous la forme suivante :

Date Vendeur CHQ CB ESP
TOTAL
01/06/2008 PAUL 550 0 25
575
01/06/2008 PIERRE 600.25 0 0
600.25
02/06/2008 PIERRE 300 200 0
500
03/06/2008 PAUL 400 0 0
400

Mais je n'y parviens pas...

Merci par avance





Avatar
jack
Merci.

En fait j'avais un problème de compatibilité au niveau de la base de données
(level 80 au lieu de 90)

"Benoit" wrote in message
news:
bonjour,

SELECT date, vendeur, [CHQ], [ESP], [CB], (isnull([CHQ],0)+isnull(
[ESP],0)+isnull([CB],0)) as TOTAL
FROM
(SELECT vendeur, typereglement, sum(montant) as montant
FROM reglement
GROUP BY vendeur, typergelement) pvt
PIVOT (sum(montant) FOR typereglement IN ([CHQ][ESP][CB])) as pvt

cordialement
clément

--
Clément DEGROOTE
SAS BEUZELIN
Tel : 02 32 67 20 60
Fax : 02 32 67 26 91
"jack" a écrit dans le message de news:

> Bonjour,
>
> Je suis sous SQL 2005
>
> J'ai une table reglement dans laquelle j'ai
>
> dateReglement smalldatetime
> vendeur varchar(20)
> typeReglement varchar(20) (Chèque, CB, espèces)
> Montant decimal(18,2)
>
> et des enregistrements de type
> 01/06/2008 PIERRE CHQ 600.25
> 01/06/2008 PAUL CHQ 200
> 01/06/2008 PAUL CHQ 350
> 01/06/2008 PAUL ESP 25
> 02/06/2008 PIERRE CB 200
> 02/06/2008 PIERRE CHQ 300
> 03/06/2008 PAUL CHQ 400
>
> etc...
>
> Je souhaiterais obtenir le résultat sous la forme suivante :
>
> Date Vendeur CHQ CB ESP
> TOTAL
> 01/06/2008 PAUL 550 0 25
> 575
> 01/06/2008 PIERRE 600.25 0 0
> 600.25
> 02/06/2008 PIERRE 300 200 0
> 500
> 03/06/2008 PAUL 400 0 0
> 400
>
> Mais je n'y parviens pas...
>
> Merci par avance
>
>
>