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;
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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;
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;