OVH Cloud OVH Cloud

Access - Transform pivot

1 réponse
Avatar
chris
Bonjour,

J'utilisait une base access que je transfrome en SQL Server. J'ai bien
repris toutes les table et je ré-écris toutes les requêtes en procédure
stockée. J'ai un souci avec une requête qui utilise les mots clés TRANSFORM
et PIVOT.
Comment est il possible de réécire cette requête en transcat-sql ?

TRANSFORM Count(PRO_GLOB.SIRET) AS CompteDeSIRET
SELECT Rir_BPO.ID_GPE, CATEGORIES.Id_CAT, AGENCES.Lib_GPE
FROM (CATEGORIES INNER JOIN NAF ON CATEGORIES.Id_CAT = NAF.Id_Cat) INNER
JOIN (AGENCES INNER JOIN (Rir_BPO INNER JOIN (ETAT INNER JOIN PRO_GLOB ON
ETAT.Id_Etat = PRO_GLOB.ETAT) ON Rir_BPO.CODE_IRIS = PRO_GLOB.COD_IRIS) ON
AGENCES.Id_AG = Rir_BPO.ID_AG) ON NAF.Code_Naf = PRO_GLOB.NAF4
WHERE (((CATEGORIES.Id_CAT)=8))
GROUP BY Rir_BPO.ID_GPE, CATEGORIES.Id_CAT, AGENCES.Lib_GPE
PIVOT ETAT.ETAT;

Merci par avance.

1 réponse

Avatar
Fred BROUARD
Il n'y a pas de PIVOT dans SQL car ceci est "anti relationnel". Le langage SQL
obéit à des normes, SQL Server des concepts et le modèle des données à une théorie !

Néanmoins, vous pouvez réécrire votre requête à la main pour faire ce genre de
présentation. Inspirez vous de ceci :
http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L9


Enfin, afin de ne plmus supporté les cris des inconditionnels d'access (et donc
obtenir des perf épouvantables...) MS A céder aux complaintes dans la version
2005 et propose le PIVOT/UNPIVOT....

A +

--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************

chris a écrit:
Bonjour,

J'utilisait une base access que je transfrome en SQL Server. J'ai bien
repris toutes les table et je ré-écris toutes les requêtes en procédure
stockée. J'ai un souci avec une requête qui utilise les mots clés TRANSFORM
et PIVOT.
Comment est il possible de réécire cette requête en transcat-sql ?

TRANSFORM Count(PRO_GLOB.SIRET) AS CompteDeSIRET
SELECT Rir_BPO.ID_GPE, CATEGORIES.Id_CAT, AGENCES.Lib_GPE
FROM (CATEGORIES INNER JOIN NAF ON CATEGORIES.Id_CAT = NAF.Id_Cat) INNER
JOIN (AGENCES INNER JOIN (Rir_BPO INNER JOIN (ETAT INNER JOIN PRO_GLOB ON
ETAT.Id_Etat = PRO_GLOB.ETAT) ON Rir_BPO.CODE_IRIS = PRO_GLOB.COD_IRIS) ON
AGENCES.Id_AG = Rir_BPO.ID_AG) ON NAF.Code_Naf = PRO_GLOB.NAF4
WHERE (((CATEGORIES.Id_CAT)=8))
GROUP BY Rir_BPO.ID_GPE, CATEGORIES.Id_CAT, AGENCES.Lib_GPE
PIVOT ETAT.ETAT;

Merci par avance.