在Oracle上的Php Pdo中请求SQL(带AS)
我尝试执行一个SQL Select请求。 我的请求在SQL Developer中工作,但当我在代码中复制请求时,她返回0结果,而在SQL Developer中返回许多结果。 我在BDD Oracle上的连接正常在Oracle上的Php Pdo中请求SQL(带AS),php,sql,oracle,pdo,Php,Sql,Oracle,Pdo,我尝试执行一个SQL Select请求。 我的请求在SQL Developer中工作,但当我在代码中复制请求时,她返回0结果,而在SQL Developer中返回许多结果。 我在BDD Oracle上的连接正常 $sql = $connexion->prepare("With Calcul_Max_Num as ( Select ho_ddeb , ho_man
$sql = $connexion->prepare("With Calcul_Max_Num as
(
Select ho_ddeb
, ho_manumdos
, ho_num
, si_nom
, si_prenom
, si_sexe
, si_nais
, si_ma_lib1
, si_ma_vil
, si_ma_codepost
, si_ma_tel
, sm_incode
, in_nom
, in_prenom
, sm_ddeb
, sm_hdeb
, sm_unitr
, max(ho_ddeb) Over (Partition BY ho_manumdos ) as Max_Date
from SERVEUR_MOUVEMENT
INNER JOIN serveur_identite
ON sm_numdos = si_numdos
INNER JOIN HOSPITALISATION
ON ho_num = sm_numhos
INNER JOIN INTERVENANT
ON SM_INCODE = IN_CODE
Where (SERVEUR_MOUVEMENT.SM_TYPMVT = 'ADM'
Or SERVEUR_MOUVEMENT.SM_TYPMVT = 'AHJ'
Or SERVEUR_MOUVEMENT.SM_TYPMVT = 'VPR')
)
select
ho_manumdos
, ho_num
, si_nom
, si_prenom
, si_sexe
, extract(YEAR from si_nais)
, to_char(si_nais, 'MM')
, to_char(si_nais, 'DD')
, si_ma_lib1
, si_ma_vil
, si_ma_codepost
, si_ma_tel
, sm_incode
, in_nom
, in_prenom
, to_char(sm_ddeb, 'YY')
, to_char(sm_ddeb, 'MM')
, to_char(sm_ddeb, 'DD')
, to_char(sm_hdeb, 'HH')
, to_char(sm_hdeb, 'MI')
From Calcul_Max_Num
Where Max_date Between '01/01/2015' AND '31/12/2015'
and ho_ddeb = Max_Date
order by ho_manumdos");
$sql->execute();
while ($row = $sql->fetch(PDO::FETCH_ASSOC)) {
echo 'good';
}
我认为问题的出现是因为请求的开始,是否可以使用as(选择…)启动请求sql?不需要分组?我认为不需要,因为他从事SQL开发人员的工作。这很重要吗?当然可以,但如果你知道我采取的另一种方式,你是否更改了这行
Max_date在'01/01/2015'和'31/12/2015'之间的日期
在SQL Dev中进行测试和将代码移动到PHP Pdo?这里使用的是字符串值,而不是范围中使用的日期值。因此,Max_Date值可能会使用与SQL Dev使用的格式不同的格式转换为字符串值。尝试在每个“日期”上使用TO_DATE()
函数:其中最大日期介于TO_DATE('01/01/2015','dd/mm/yyyy')和TO_DATE('31/12/2015','dd/mm/yyyyy')之间
No GROUP BY needed?我认为不需要,因为他在SQL developer上工作,这很重要吗?当然可以,但如果你知道我采取的另一种方式,你是否更改了这行Max_日期在'01/01/2015'和'31/12/2015'之间的位置
在SQL Dev中测试和将代码移动到PHP Pdo之间?这里使用的是字符串值,而不是范围中使用的日期值。因此,Max_Date值可能会使用与SQL Dev使用的格式不同的格式转换为字符串值。在您的每个“日期”上尝试使用TO_DATE()
函数:其中最大日期介于TO_DATE('01/01/2015','dd/mm/yyyy')和TO_DATE('31/12/2015','dd/mm/yyyyy')