I am using a query to get data organized and it works well with ORACLE SQL DEVELOPER, though when I am trying to get it in my PHP script, it returns an error.
My php file:
<?php
include 'connexion.php';
//
$sql = oci_parse($conn, 'select c.* from (
select
b.EB_DOMAINE_NOM,b.EB_INDICATEUR_LIBELLE,b.EB_RESULTAT_VALEUR as EB_RESULTAT_VALEUR_m,
b.EB_RESULTAT_INSERT_DATE as EB_RESULTAT_INSERT_DATE_m,
b.EB_INDICATEUR_NUM,
EB_RESULTAT_DTM.VALEUR as valeur_m1,(EB_RESULTAT_DTM.VALEUR-b.EB_RESULTAT_VALEUR) as diff_m1_m,
rank() over (partition by EB_RESULTAT_DTM.X_EB_INDICATEUR_DTM_NUM, to_char(EB_RESULTAT_DTM.INSERT_DATE,'yyyymm')
order by to_char(EB_RESULTAT_DTM.INSERT_DATE,'yyyymmdd') asc) as rang
from (
select A.*
from (
SELECT EB_DOMAINE_DTM."NOM" AS EB_DOMAINE_NOM,
EB_INDICATEUR_DTM."LIBELLE" AS EB_INDICATEUR_LIBELLE,
EB_RESULTAT_DTM."VALEUR" AS EB_RESULTAT_VALEUR,
EB_RESULTAT_DTM."INSERT_DATE" AS EB_RESULTAT_INSERT_DATE,
EB_INDICATEUR_DTM."INDICATEUR_NUM" AS EB_INDICATEUR_NUM,
rank() over (partition by EB_INDICATEUR_DTM.INDICATEUR_NUM,to_char(EB_RESULTAT_DTM.INSERT_DATE,'yyyymm') order by to_char(EB_RESULTAT_DTM.INSERT_DATE,'yyyymmdd') asc) as rang,
to_char(EB_RESULTAT_DTM.INSERT_DATE,'yyyymm') as MOIS_M
FROM "COMPTEUR_OWNER"."EB_DOMAINE_DTM" EB_DOMAINE_DTM
INNER JOIN
"COMPTEUR_OWNER"."EB_INDICATEUR_DTM" EB_INDICATEUR_DTM
ON EB_DOMAINE_DTM."EB_DOMAINE_DTM_NUM" =
EB_INDICATEUR_DTM."X_EB_DOMAINE_DTM_NUM"
INNER JOIN
"COMPTEUR_OWNER"."EB_RESULTAT_DTM" EB_RESULTAT_DTM
ON EB_INDICATEUR_DTM."INDICATEUR_NUM" =
EB_RESULTAT_DTM."X_EB_INDICATEUR_DTM_NUM"
WHERE EB_INDICATEUR_DTM."INDICATEUR_NUM" = 106
AND EB_RESULTAT_DTM."INSERT_DATE" BETWEEN ADD_MONTHS (SYSDATE, -9)
AND SYSDATE
) a where a.rang=1
) b left outer join COMPTEUR_OWNER.EB_RESULTAT_DTM EB_RESULTAT_DTM
on EB_RESULTAT_DTM.X_EB_INDICATEUR_DTM_NUM =b.EB_INDICATEUR_NUM
AND TO_CHAR(EB_RESULTAT_DTM.INSERT_DATE,'YYYYMM')=TO_CHAR(ADD_MONTHS(TO_DATE(b.MOIS_M,'YYYYMM'),1),'YYYYMM')
) c where c.rang=1
order by TO_CHAR(c.EB_RESULTAT_INSERT_DATE_m,'YYYYMM') asc
');
oci_execute($sql);
?>
I get an error because of the 'YYYYMM'
. Or if I fix it I get an error with A.RANG
etc..
While in Oracle I get what I want:
Is there a way to get the same result as in Oracle?