#1 Tue 18 January 2011 10:48
- audrey.mialon
- Juste Inscrit !
- Date d'inscription: 25 Feb 2010
- Messages: 4
ORACLE/SQL : Requête SQL dans le logiciel Arcgis
Bonjour,
Je réalise des cartes grâce au logiciel Arcgis 9.3.1. Pour l'une d'entre elle j'utilise cette requête SQL :
Code:
USING SQLJOIN='select P_CDEPT, count(P_CDEPT) as D0, -1 as D1, -1 as D2, -1 as D3, -1 as D4 from V5KMAJAA.VW_MATABLE WHERE DATE>=$FROM$ and DATE<=$TO$ GROUP BY P_CDEPT' and USING FCKEYFIELD='P_CDEP' and USING FCKEYFIELDTYPEISSTRING='true' and USING USERCACHESESSION='35' and using parameter(FROM,DATE,'01/01/2010') and using parameter(TO,DATE,'31/03/2010')
Elle fonctionne très bien.
Désormais je voudrais utiliser cette même requête sur la même période mais pour l'année précédente. C'est à dire si on considère que l'année est 2010 alors je souhaite avoir une requête qui me permette de faire "année - 1" pour avoir les résultats 2009.
J'ai essayé ceci mais ça ne fonctionne pas : ($FROM$ - INTERVAL '1' year) , ($TO$ - INTERVAL '1' year)
Code:
USING SQLJOIN='select P_CDEPT, count(P_CDEPT) as D0, -1 as D1, -1 as D2, -1 as D3, -1 as D4 from V5KMAJAA.VW_MATABLE WHERE DATE>=[b]($FROM$ - INTERVAL '1' year)[/b] and DATE<=[b]($TO$ - INTERVAL '1' year)[/b] GROUP BY P_CDEPT' and USING FCKEYFIELD='P_CDEP' and USING FCKEYFIELDTYPEISSTRING='true' and USING USERCACHESESSION='35' and using parameter(FROM,DATE,'01/01/2010') and using parameter(TO,DATE,'31/03/2010')
Quelqu'un aurait il une idée pour me guider vers la solution ?
Merci de votre attention
Hors ligne
#2 Tue 18 January 2011 11:29
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: ORACLE/SQL : Requête SQL dans le logiciel Arcgis
Aloha,
Ne pouvez-vous pas écrire plutôt :
Code:
USING SQLJOIN='select P_CDEPT, count(P_CDEPT) as D0, -1 as D1, -1 as D2, -1 as D3, -1 as D4 from V5KMAJAA.VW_MATABLE WHERE DATE>=($FROM$) and DATE<=($TO$) GROUP BY P_CDEPT' and USING FCKEYFIELD='P_CDEP' and USING FCKEYFIELDTYPEISSTRING='true' and USING USERCACHESESSION='35' and using parameter(FROM,DATE,'01/01/2009') and using parameter(TO,DATE,'31/03/2009')
Ou alors essayez "YEAR" et non "year".
Avec SELECT * FROM MATABLE WHERE CDATE <= (? - INTERVAL '1' YEAR)... j'obtiens de bons résultats.
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#3 Wed 19 January 2011 15:27
- audrey.mialon
- Juste Inscrit !
- Date d'inscription: 25 Feb 2010
- Messages: 4
Re: ORACLE/SQL : Requête SQL dans le logiciel Arcgis
Bonjour et merci de votre réponse,
Non il ne m'est pas possible de changer directement la date dans la requête car cette carte est utilisée à travers une appli web et c'est dans cette dernière que la date est définie. Je souhaite donc écrire ce type de code ($FROM$ - INTERVAL '1' year) pour qu'il prenne la date défini dans l'application et qu'il fasse YEAR-1.
J'ai essayé avec votre proposition, j'obtiens un bon résultat avec SQL plus mais pas dans arcmap, ce doit être mon outil qui pose soucis.
Hors ligne
#4 Wed 19 January 2011 15:36
- Pierre
- DesCartesPourUnMondeMeilleur
- Date d'inscription: 22 Sep 2005
- Messages: 1643
Re: ORACLE/SQL : Requête SQL dans le logiciel Arcgis
Et dans votre appli, est-il possible de définir une autre série de paramètres : FROM_I et TO_I définis à partir de FROM et TO mais avec l'interval qui récupère le paramètre entré par l'utilisateur ?
art X I. Déclaration des Droits de l’Homme et du Citoyen 1789
La libre communication des pensées et des opinions est un des droits les plus précieux de l’Homme : tout Citoyen peut donc parler, écrire, imprimer librement, sauf à répondre de l’abus de cette liberté, dans les cas déterminés par la Loi.
Hors ligne
#5 Wed 19 January 2011 17:06
- audrey.mialon
- Juste Inscrit !
- Date d'inscription: 25 Feb 2010
- Messages: 4
Re: ORACLE/SQL : Requête SQL dans le logiciel Arcgis
Bonsoir,
Merci encore de votre réponse.
j'ai essayé votre solution mais là non plus chez moi ça ne fonctionne pas. Du coup avec un collègue on a été lire le code de l'application pas à pas et on s'est rendu compte que notre appli ne connaissait que $FROM$ et $TO$ et qu'elle remplaçait ces paramètres directement par la date entrée par l'utilisateur. De ce fait on ne peut pas faire de "calcul" sur le $FROM$ sans modifier l'application.
Je vous remercie de votre attention.
Hors ligne